Modelos
Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.
Calcule as menores distâncias em saltos dirigidos desde um vértice num grafo de 1 a 1000 vértices.
from collections import deque
def hop_distances(graph, start):
if type(graph) is not list or not 1 <= len(graph) <= 1000:
raise ValueError("graph.size")
n = len(graph)
if type(start) is not int or not 0 <= start < n:
raise ValueError("graph.start")
if any(type(row) is not list or any(type(v) is not int or
not 0 <= v < n for v in row) for row in graph):
raise ValueError("graph.edges")
distances = [None]*n
distances[start] = 0
queue = deque([start])
while queue:
u = queue.popleft()
for v in graph[u]:
if distances[v] is None:
distances[v] = distances[u]+1
queue.append(v)
return distancesConfigure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.
Teste ciclos, arestas repetidas e vértices inalcançáveis, rejeitando grafo vazio ou extremos inválidos antes da travessia.
Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
from collections import deque
def hop_distances(graph, start):
if type(graph) is not list or not 1 <= len(graph) <= 1000:
raise ValueError("graph.size")
n = len(graph)
if type(start) is not int or not 0 <= start < n:
raise ValueError("graph.start")
if any(type(row) is not list or any(type(v) is not int or
not 0 <= v < n for v in row) for row in graph):
raise ValueError("graph.edges")
distances = [None]*n
distances[start] = 0
queue = deque([start])
while queue:
u = queue.popleft()
for v in graph[u]:
if distances[v] is None:
distances[v] = distances[u]+1
queue.append(v)
return distancesUm resultado de grafo só é útil quando o código chamador entende o significado de cada valor. Hopwise oferece um ambiente de programação com IA para Windows para código relacionado a grafos, ligando o código-fonte a uma conversa sobre seu contrato. Comece pela representação da entrada e pela forma como a aplicação exibe ou utiliza o resultado, em vez de pedir a substituição isolada de um algoritmo.
Para uma tarefa de menor número de saltos, mostre um pequeno grafo direcionado com vértices alcançáveis e inalcançáveis. Peça ao modelo conectado que examine como a implementação diferencia o vértice inicial de um vértice sem caminho. Inclua um ciclo para que a revisão considere descobertas repetidas, além da cadeia direta mais simples.
Em seguida, examine o limite onde os dados do grafo entram na função. Referências inválidas a vértices devem seguir uma política deliberada, e a direção deve corresponder ao significado de uma aresta na aplicação. Revise as edições propostas junto com o código consumidor e execute casos que verifiquem resultados exatos para cada vértice. Mantenha visível na interface o tratamento de estados inalcançáveis após o cálculo.
Hopwise suporta endpoints adequados compatíveis com OpenAI ou da Anthropic, incluindo um modelo de IA sem censura quando disponível. O comportamento real das respostas, os limites de contexto e as ferramentas dependem dessa configuração. O ambiente apoia a investigação; evidências dos casos de teste de grafos e dos testes de integração determinam se a alteração está pronta para ser mantida.
Escolha um pequeno exemplo direcionado com um ciclo, um vértice inalcançável e um início claramente identificado. Escreva o resultado esperado para cada vértice. Isso facilita examinar a direção e a semântica de ausência de caminho em comparação com um grande grafo de produção.
Zero descreve a distância do vértice inicial até ele mesmo, enquanto inalcançável significa que nenhum caminho foi encontrado sob o contrato do grafo. Se o código chamador confundir os dois, uma interface poderá mostrar uma conexão inexistente. Revise a representação do retorno junto com seus consumidores.
Somente quando todas as arestas representam o mesmo custo para a finalidade da tarefa. Se os pesos forem importantes, explique esse requisito antes de solicitar alterações. Uma implementação de menor número de saltos não deve ser apresentada como solução para um objetivo de otimização diferente.
Defina a política no limite de entrada e examine o código chamador existente. Peça ao modelo que preserve um fluxo claro de rejeição ou validação. Os testes devem incluir referências malformadas para que um comportamento acidental de indexação não se torne o contrato da aplicação.
Hopwise · Atualizado 2026-10-25