Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique uniquement à :le portail classique Foundry. Cet article n’est pas disponible pour le nouveau portail Foundry.
En savoir plus sur le nouveau portail.
Note
Les liens de cet article peuvent ouvrir du contenu dans la nouvelle documentation Microsoft Foundry au lieu de la documentation Foundry (classique) que vous affichez maintenant.
Note
L’API des assistants est obsolète et sera retirée le 26 août 2026. Utilisez le service Microsoft Foundry Agents, généralement disponible. Suivez le guide de migration pour mettre à jour vos charges de travail. En savoir plus.
L’API Assistants prend en charge l’appel de fonction, ce qui vous permet de décrire la structure des fonctions à un Assistant, puis de renvoyer les fonctions qui doivent être appelées avec leurs arguments.
Prise en charge des appels de fonction
Modèles pris en charge
La page modèles contient les informations les plus up-to-date sur les régions/modèles où les Assistants sont pris en charge.
Pour utiliser toutes les fonctionnalités d’appel de fonction, y compris les fonctions parallèles, vous devez utiliser un modèle qui a été publié après le 6 novembre 2023.
Versions de l’API
Versions d’API commençant par 2024-02-15-preview.
Exemple de définition de fonction
Note
- Nous avons ajouté la prise en charge du
tool_choiceparamètre qui peut être utilisé pour forcer l'utilisation d'un outil spécifique (commefile_search,code_interpreter, ou unfunction) dans une exécution particulière. - Les runs expirent dix minutes après leur création. Veillez à envoyer vos résultats d’outil avant cette date limite.
- Vous pouvez également effectuer des appels de fonction avec Azure applications logiques
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-07-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
assistant = client.beta.assistants.create(
name="Weather Bot",
instructions="You are a weather bot. Use the provided functions to answer questions.",
model="gpt-4", #Replace with model deployment name
tools=[{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the weather in location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "The city name, for example San Francisco"}
},
"required": ["location"]
}
}
}]
)
Lecture des fonctions
Lorsque vous lancez une exécution avec un message utilisateur qui déclenche la fonction, l’exécution passera en état d'attente. Une fois le traitement effectué, le run entrera dans un état "requires_action" que vous pouvez vérifier en récupérant le Run.
{
"id": "run_abc123",
"object": "thread.run",
"assistant_id": "asst_abc123",
"thread_id": "thread_abc123",
"status": "requires_action",
"required_action": {
"type": "submit_tool_outputs",
"submit_tool_outputs": {
"tool_calls": [
{
"id": "call_abc123",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"location\":\"Seattle\"}"
}
},
]
}
},
...
Soumission des résultats de fonction
Vous pouvez ensuite terminer l’exécution en envoyant la sortie de l’outil à partir de la ou des fonctions que vous appelez. Passez le tool_call_id référené dans l’objet required_action pour faire correspondre la sortie à chaque appel de fonction.
# Example function
def get_weather():
return "It's 80 degrees F and slightly cloudy."
# Define the list to store tool outputs
tool_outputs = []
# Loop through each tool in the required action section
for tool in run.required_action.submit_tool_outputs.tool_calls:
# get data from the weather function
if tool.function.name == "get_weather":
weather = get_weather()
tool_outputs.append({
"tool_call_id": tool.id,
"output": weather
})
# Submit all tool outputs at once after collecting them in a list
if tool_outputs:
try:
run = client.beta.threads.runs.submit_tool_outputs_and_poll(
thread_id=thread.id,
run_id=run.id,
tool_outputs=tool_outputs
)
print("Tool outputs submitted successfully.")
except Exception as e:
print("Failed to submit tool outputs:", e)
else:
print("No tool outputs to submit.")
if run.status == 'completed':
print("run status: ", run.status)
messages = client.beta.threads.messages.list(thread_id=thread.id)
print(messages.to_json(indent=2))
else:
print("run status: ", run.status)
print (run.last_error.message)
Une fois que vous avez envoyé les résultats de l’outil, Run entre dans l’état queued avant de poursuivre le processus.
Voir aussi
- Informations de référence sur l’API Assistants
- Apprenez-en davantage sur l’utilisation des Assistants avec notre guide pratique sur les Assistants.
- Exemples d'API Azure Assistants OpenAI