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.
Program Microsoft Agent Framework obsługuje tworzenie agentów korzystających z usługi odpowiedzi OpenAI .
Wprowadzenie
Dodaj wymagane pakiety NuGet do projektu.
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Tworzenie agenta odpowiedzi openAI
Pierwszym krokiem jest utworzenie klienta w celu nawiązania połączenia z usługą OpenAI.
using System;
using Microsoft.Agents.AI;
using OpenAI;
OpenAIClient client = new OpenAIClient("<your_api_key>");
OpenAI obsługuje wiele usług, które oferują możliwości wywoływania modelu. Musimy wybrać usługę Odpowiedzi, aby utworzyć agenta opartego na odpowiedziach.
#pragma warning disable OPENAI001 // Type is for evaluation purposes only and is subject to change or removal in future updates.
var responseClient = client.GetOpenAIResponseClient("gpt-4o-mini");
#pragma warning restore OPENAI001
Na koniec utwórz agenta CreateAIAgent przy użyciu metody rozszerzenia w pliku ResponseClient.
AIAgent agent = responseClient.CreateAIAgent(
instructions: "You are good at telling jokes.",
name: "Joker");
// Invoke the agent and output the text result.
Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));
Korzystanie z agenta
Agent jest standardowy AIAgent i obsługuje wszystkie standardowe AIAgent operacje.
Aby uzyskać więcej informacji na temat uruchamiania agentów i interakcji z nimi, zobacz samouczki wprowadzające Agenta.
Wymagania wstępne
Zainstaluj pakiet programu Microsoft Agent Framework.
pip install agent-framework --pre
Konfiguracja
Zmienne środowiskowe
Skonfiguruj wymagane zmienne środowiskowe na potrzeby uwierzytelniania openAI:
# Required for OpenAI API access
OPENAI_API_KEY="your-openai-api-key"
OPENAI_RESPONSES_MODEL_ID="gpt-4o" # or your preferred Responses-compatible model
Alternatywnie możesz użyć pliku .env w katalogu głównym projektu.
OPENAI_API_KEY=your-openai-api-key
OPENAI_RESPONSES_MODEL_ID=gpt-4o
Wprowadzenie
Zaimportuj wymagane klasy z programu Agent Framework:
import asyncio
from agent_framework.openai import OpenAIResponsesClient
Tworzenie agenta odpowiedzi openAI
Tworzenie podstawowego agenta
Najprostszym sposobem na utworzenie agenta odpowiedzi jest:
async def basic_example():
# Create an agent using OpenAI Responses
agent = OpenAIResponsesClient().create_agent(
name="WeatherBot",
instructions="You are a helpful weather assistant.",
)
result = await agent.run("What's a good way to check the weather?")
print(result.text)
Korzystanie z konfiguracji jawnej
Możesz podać jawną konfigurację zamiast polegać na zmiennych środowiskowych:
async def explicit_config_example():
agent = OpenAIResponsesClient(
ai_model_id="gpt-4o",
api_key="your-api-key-here",
).create_agent(
instructions="You are a helpful assistant.",
)
result = await agent.run("Tell me about AI.")
print(result.text)
Podstawowe wzorce użycia
Odpowiedzi w strumieniowaniu
Uzyskuj odpowiedzi w miarę ich generowania w celu lepszego doświadczenia użytkownika.
async def streaming_example():
agent = OpenAIResponsesClient().create_agent(
instructions="You are a creative storyteller.",
)
print("Assistant: ", end="", flush=True)
async for chunk in agent.run_stream("Tell me a short story about AI."):
if chunk.text:
print(chunk.text, end="", flush=True)
print() # New line after streaming
Funkcje agenta
Modele rozumowania
Korzystaj z zaawansowanych funkcji rozumowania z modelami, takimi jak GPT-5:
from agent_framework import HostedCodeInterpreterTool, TextContent, TextReasoningContent
async def reasoning_example():
agent = OpenAIResponsesClient(ai_model_id="gpt-5").create_agent(
name="MathTutor",
instructions="You are a personal math tutor. When asked a math question, "
"write and run code to answer the question.",
tools=HostedCodeInterpreterTool(),
reasoning={"effort": "high", "summary": "detailed"},
)
print("Assistant: ", end="", flush=True)
async for chunk in agent.run_stream("Solve: 3x + 11 = 14"):
if chunk.contents:
for content in chunk.contents:
if isinstance(content, TextReasoningContent):
# Reasoning content in gray text
print(f"\033[97m{content.text}\033[0m", end="", flush=True)
elif isinstance(content, TextContent):
print(content.text, end="", flush=True)
print()
Dane wyjściowe strukturalne
Uzyskiwanie odpowiedzi w formatach strukturalnych:
from pydantic import BaseModel
from agent_framework import AgentRunResponse
class CityInfo(BaseModel):
"""A structured output for city information."""
city: str
description: str
async def structured_output_example():
agent = OpenAIResponsesClient().create_agent(
name="CityExpert",
instructions="You describe cities in a structured format.",
)
# Non-streaming structured output
result = await agent.run("Tell me about Paris, France", response_format=CityInfo)
if result.value:
city_data = result.value
print(f"City: {city_data.city}")
print(f"Description: {city_data.description}")
# Streaming structured output
structured_result = await AgentRunResponse.from_agent_response_generator(
agent.run_stream("Tell me about Tokyo, Japan", response_format=CityInfo),
output_format_type=CityInfo,
)
if structured_result.value:
tokyo_data = structured_result.value
print(f"City: {tokyo_data.city}")
print(f"Description: {tokyo_data.description}")
Narzędzia funkcji
Wyposażyć agenta w funkcje niestandardowe:
from typing import Annotated
from pydantic import Field
def get_weather(
location: Annotated[str, Field(description="The location to get weather for")]
) -> str:
"""Get the weather for a given location."""
# Your weather API implementation here
return f"The weather in {location} is sunny with 25°C."
async def tools_example():
agent = OpenAIResponsesClient().create_agent(
instructions="You are a helpful weather assistant.",
tools=get_weather,
)
result = await agent.run("What's the weather like in Tokyo?")
print(result.text)
Generowanie obrazu
Generowanie obrazów przy użyciu API Responses:
from agent_framework import DataContent, UriContent
async def image_generation_example():
agent = OpenAIResponsesClient().create_agent(
instructions="You are a helpful AI that can generate images.",
tools=[{
"type": "image_generation",
"size": "1024x1024",
"quality": "low",
}],
)
result = await agent.run("Generate an image of a sunset over the ocean.")
# Check for generated images in the response
for content in result.contents:
if isinstance(content, (DataContent, UriContent)):
print(f"Image generated: {content.uri}")
Interpreter kodów
Włącz asystenta do wykonywania kodu w języku Python:
from agent_framework import HostedCodeInterpreterTool
async def code_interpreter_example():
agent = OpenAIResponsesClient().create_agent(
instructions="You are a helpful assistant that can write and execute Python code.",
tools=HostedCodeInterpreterTool(),
)
result = await agent.run("Calculate the factorial of 100 using Python code.")
print(result.text)
Korzystanie z agenta
Agent jest standardowy BaseAgent i obsługuje wszystkie standardowe operacje agenta.
Aby uzyskać więcej informacji na temat uruchamiania agentów i interakcji z nimi, zobacz samouczki wprowadzające Agenta.