Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga / Notatka
Ten dokument odnosi się do portalu Microsoft Foundry (klasycznego).
🔍 Zapoznaj się z dokumentacją rozwiązania Microsoft Foundry (nową), aby dowiedzieć się więcej o nowym portalu.
Uwaga / Notatka
Usługa Microsoft Foundry Agent jest teraz ogólnie dostępna, co zapewnia więcej narzędzi i lepszych funkcji przedsiębiorstwa. Zalecamy korzystanie z nowej usługi w celu uzyskania najnowszych aktualizacji i ulepszeń funkcji.
Interfejs API asystentów obsługuje wywoływanie funkcji, co umożliwia opisanie struktury funkcji dla asystenta, a następnie zwrócenie funkcji, które muszą być wywoływane, wraz z ich argumentami.
Obsługa wywoływania funkcji
Obsługiwane modele
Strona modeli zawiera najbardziej aktualne informacje dotyczące regionów/modeli, w których są obsługiwani Asystenci.
Aby użyć wszystkich funkcji wywoływania funkcji, w tym funkcji równoległych, należy użyć modelu, który został wydany po 6 listopada 2023 r.
Wersje interfejsu API
Wersje interfejsu API rozpoczynające się od 2024-02-15-preview.
Przykładowa definicja funkcji
Uwaga / Notatka
- Dodaliśmy obsługę parametru
tool_choice, który może służyć do wymuszenia użycia określonego narzędzia (na przykładfile_search,code_interpreterlub )functionw konkretnym uruchomieniu. - Przebiegi wygasają dziesięć minut po utworzeniu. Przed wygaśnięciem pamiętaj o przesłaniu danych wyjściowych narzędzia.
- Możesz również wykonywać wywołania funkcji za pomocą usługi Azure Logic Apps
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"]
}
}
}]
)
Odczytywanie funkcji
Po zainicjowaniu uruchomienia za pomocą komunikatu użytkownika, który wyzwala funkcję, uruchomienie wprowadzi stan oczekiwania. Po jego zakończeniu przebieg wprowadzi requires_action stan, który można zweryfikować, pobierając polecenie Uruchom.
{
"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\"}"
}
},
]
}
},
...
Przesyłanie danych wyjściowych funkcji
Następnie możesz ukończyć uruchamianie, przesyłając dane wyjściowe narzędzia z wywołanych funkcji.
tool_call_id Przekaż odwołanie do obiektu, required_action aby dopasować dane wyjściowe do każdego wywołania funkcji.
# 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)
Po przesłaniu danych wyjściowych narzędzia uruchomienie przejdzie w queued stan przed kontynuowanym wykonywaniem.
Zobacz także
- Dokumentacja interfejsu API asystentów
- Dowiedz się więcej na temat korzystania z asystentów, korzystając z naszego przewodnika z instrukcjami dotyczącymi asystentów.
- Przykłady interfejsu API asystentów openAI platformy Azure