介绍
- OpenAIChatCompletionClient 是一个用于与 OpenAI 模型(如 GPT-4)交互的工具,支持生成对话式的文本补全。它通过调用 OpenAI 的 ChatCompletion API,提供了灵活的接口来处理用户输入并生成响应。
基本用法
python
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_core.models import UserMessage
# 初始化模型客户端
model_client = OpenAIChatCompletionClient(
model="gpt-4",
temperature=0.5 # 控制生成文本的随机性
)
# 创建用户消息
messages = [UserMessage(content="巴黎的首都是哪里?", source="user")]
# 调用模型生成响应
response = await model_client.create(messages)
print(response.content)流式响应
python
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_core.models import UserMessage
# 初始化模型客户端
model_client = OpenAIChatCompletionClient(
model="gpt-4",
temperature=0.5 # 控制生成文本的随机性
)
# 创建用户消息
messages = [UserMessage(content="巴黎的首都是哪里?", source="user")]
stream = model_client.create_stream(messages=messages)
async for chunk in stream:
if isinstance(chunk, str):
print(chunk, end="")
else:
print("\n完整响应:", chunk.content)结构化输出(通过定义Pydantic模型)
python
from pydantic import BaseModel
from typing import Literal
class AgentResponse(BaseModel):
thoughts: str
response: Literal["happy", "sad", "neutral"]
model_client = OpenAIChatCompletionClient(
model="gpt-4",
response_format=AgentResponse
)
# 创建用户消息
messages = [UserMessage(content="巴黎的首都是哪里?", source="user")]
response = await model_client.create(messages)
parsed_response = AgentResponse.model_validate_json(response.content)
print(parsed_response.thoughts, parsed_response.response)缓存支持
python
from autogen_ext.models.cache import ChatCompletionCache
from autogen_ext.cache_store.diskcache import DiskCacheStore
from diskcache import Cache
import tempfile
# 创建用户消息
messages = [UserMessage(content="巴黎的首都是哪里?", source="user")]
with tempfile.TemporaryDirectory() as tmpdirname:
cache_store = DiskCacheStore(Cache(tmpdirname))
cache_client = ChatCompletionCache(model_client, cache_store)
response = await cache_client.create(messages)
print(response.content)- 注意:这种方式是精准匹配,语义相同的问题也会被认成两个不同的问题,如果要实现语义缓存,可以使用嵌入模型(Embedding Model)+ 向量数据库的方式实现