Modèles
Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.
Calcule les plus courtes distances en arcs dirigés depuis un sommet d’un graphe de 1 à 1000 sommets.
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 distancesConfigurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.
Teste les cycles, arcs répétés et sommets inaccessibles, en refusant un graphe vide ou des extrémités invalides avant le parcours.
Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.
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 distancesUn résultat de graphe n’est utile que si l’appelant comprend chaque valeur. Hopwise offre au code lié aux graphes un espace de programmation avec IA pour Windows, reliant les sources à une conversation sur leur contrat. Partez de la représentation des entrées et de la façon dont l’application affiche ou utilise le résultat, plutôt que de demander le remplacement isolé d’un algorithme.
Pour une tâche de plus court chemin en nombre d’arêtes, montrez un petit graphe orienté avec des sommets accessibles et inaccessibles. Demandez au modèle connecté d’examiner comment l’implémentation distingue le sommet initial d’un sommet sans chemin. Incluez un cycle afin que la revue considère les découvertes répétées, au-delà de la simple chaîne orientée.
Examinez ensuite la frontière où les données du graphe entrent dans la fonction. Les références de sommets invalides doivent suivre une politique délibérée, et l’orientation doit correspondre au sens d’une arête dans l’application. Examinez les modifications proposées avec le code consommateur, puis exécutez des tests affirmant les résultats exacts pour chaque sommet. Gardez visible dans l’interface le traitement de l’état inaccessible après le calcul.
Hopwise prend en charge les points de terminaison compatibles OpenAI ou Anthropic, y compris un modèle d’IA sans censure s’il est disponible. Le comportement réel des réponses, les limites de contexte et les outils dépendent de cette configuration. L’espace de travail facilite l’enquête ; les preuves issues de vos cas de test de graphes et de vos tests d’intégration déterminent si la modification peut être conservée.
Choisissez un petit exemple orienté avec un cycle, un sommet inaccessible et un départ clairement identifié. Écrivez le résultat attendu pour chaque sommet. Cela rend l’orientation et le sens de l’absence de chemin plus faciles à examiner qu’un grand graphe de production.
Zéro décrit la distance du sommet initial à lui-même, tandis qu’inaccessible signifie qu’aucun chemin n’a été trouvé selon le contrat du graphe. Si les appelants les confondent, l’interface peut afficher une connexion inexistante. Examinez ensemble la représentation retournée et ses consommateurs.
Uniquement lorsque chaque arête représente le même coût pour la tâche. Si les poids comptent, expliquez cette exigence avant de demander des modifications. Une implémentation minimisant le nombre d’arêtes ne doit pas être présentée comme répondant à un autre objectif d’optimisation.
Fixez la politique à la frontière d’entrée et examinez les appelants existants. Demandez au modèle de préserver un chemin clair de rejet ou de validation. Les tests doivent inclure des références mal formées afin qu’un comportement d’indexation accidentel ne devienne pas le contrat de l’application.
Hopwise · Mis à jour 2026-10-25