Interpréteur de code

L'interpréteur de code ajoute la capacité d'exécuter du code en toute sécurité dans un conteneur isolé. Cet outil intégré permet aux agents d'exécuter du code à tout moment sur demande, ce qui est pratique pour tracer des graphiques, analyser des données, effectuer des opérations mathématiques, valider du code et bien plus encore.

code_interpreter_graph

Pour utiliser l'interpréteur de code, vous pouvez créer un agent avec l'outil interpréteur de code. Une fois cela fait, vous pouvez démarrer une conversation avec l'agent qui exécutera du code sur demande en exploitant les sorties pour répondre à vos questions.

Créer un agent avec interpréteur de code

Créer un agent avec interpréteur de code

Vous pouvez créer un agent avec accès à notre interpréteur de code en le fournissant comme l'un des outils. Notez que vous pouvez toujours ajouter d'autres outils à l'agent, le modèle est libre d'exécuter du code ou non selon les besoins.

code_agent = client.beta.agents.create(
    model="mistral-medium-latest",
    name="Coding Agent",
    description="Agent used to execute code using the interpreter tool.",
    instructions="Use the code interpreter tool when you have to run code.",
    tools=[{"type": "code_interpreter"}],
    completion_args={
        "temperature": 0.3,
        "top_p": 0.95,
    }
)

Comme pour les autres agents, lors de la création vous recevez un identifiant d'agent correspondant à l'agent créé que vous pouvez utiliser pour démarrer une conversation.

Fonctionnement

Fonctionnement

Maintenant que notre agent de code est prêt, nous pouvons à tout moment l'utiliser pour exécuter du code.

Conversations avec l'interpréteur de code

Conversations avec l'interpréteur de code

Pour démarrer une conversation avec notre agent d'interpréteur de code, nous pouvons utiliser le code suivant :

response = client.beta.conversations.start(
    agent_id=code_agent.id,
    inputs="Run a fibonacci function for the first 20 values."
)
Explication de la sortie

Explication de la sortie

Ci-dessous, nous expliquons les différentes sorties de la réponse de l'exemple de code précédent :

  • message.output : cette entrée correspond à la réponse initiale de l'assistant, indiquant qu'il peut générer les 20 premiers nombres de Fibonacci.

  • tool.execution : cette entrée correspond à l'exécution de l'outil interpréteur de code. Elle inclut des métadonnées sur l'exécution, telles que :

    • name : le nom de l'outil, qui dans ce cas est code_interpreter.
    • object : le type d'objet, qui est entry.
    • type : le type d'entrée, qui est tool.execution.
    • created_at et completed_at : horodatages indiquant quand l'exécution de l'outil a commencé et s'est terminée.
    • id : un identifiant unique pour l'exécution de l'outil.
    • info : cette section contient des informations supplémentaires spécifiques à l'exécution de l'outil. Pour l'outil code_interpreter, la section info inclut :
      • code : le code réel qui a été exécuté. Dans cet exemple, il contient une fonction Python fibonacci(n) qui génère les n premiers nombres de la suite de Fibonacci et un appel à cette fonction pour obtenir les 20 premiers nombres de Fibonacci.
      • code_output : la sortie du code exécuté, qui est la liste des 20 premiers nombres de Fibonacci.
  • message.output : cette entrée correspond à la réponse finale de l'assistant, fournissant les 20 premières valeurs de la suite de Fibonacci.