autogen_ext.models.azure#
- class AzureAIChatCompletionClient(**kwargs: Unpack)[源代码]#
-
用于托管在Azure AI Foundry或GitHub Models上的模型的聊天补全客户端。 更多信息请参阅`此处<https://learn.microsoft.com/en-us/azure/ai-studio/reference/reference-model-inference-chat-completions>`_。
- 参数:
endpoint (str) -- 使用的端点。必填
credential (union, AzureKeyCredential, AsyncTokenCredential) -- 使用的凭证。必填
model_info (ModelInfo) -- 模型的系列和能力。必填
model (str) -- 模型名称。如果模型托管在GitHub Models上则为必填
frequency_penalty -- (可选,float)
presence_penalty -- (可选,float)
temperature -- (可选,float)
top_p -- (可选,float)
max_tokens -- (可选,int)
response_format -- (可选, literal["text", "json_object"])
stop -- (可选,List[str])
tools -- (可选,List[ChatCompletionsToolDefinition])
tool_choice -- (可选,Union[str, ChatCompletionsToolChoicePreset, ChatCompletionsNamedToolChoice]])
seed -- (可选,int)
model_extras -- (可选,Dict[str, Any])
使用此客户端需要安装`azure`扩展:
pip install "autogen-ext[azure]"
以下代码片段展示如何与GitHub Models一起使用该客户端:
import asyncio import os from azure.core.credentials import AzureKeyCredential from autogen_ext.models.azure import AzureAIChatCompletionClient from autogen_core.models import UserMessage async def main(): client = AzureAIChatCompletionClient( model="Phi-4", endpoint="https://models.inference.ai.azure.com", # 要验证模型,您需要在GitHub设置中生成个人访问令牌(PAT)。 # 按照此处说明创建PAT令牌:https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens credential=AzureKeyCredential(os.environ["GITHUB_TOKEN"]), model_info={ "json_output": False, "function_calling": False, "vision": False, "family": "unknown", "structured_output": False, }, ) result = await client.create([UserMessage(content="What is the capital of France?", source="user")]) print(result) # 关闭客户端 await client.close() if __name__ == "__main__": asyncio.run(main())
要使用流式传输,可以使用`create_stream`方法:
import asyncio import os from autogen_core.models import UserMessage from autogen_ext.models.azure import AzureAIChatCompletionClient from azure.core.credentials import AzureKeyCredential async def main(): client = AzureAIChatCompletionClient( model="Phi-4", endpoint="https://models.inference.ai.azure.com", # 要验证模型,您需要在GitHub设置中生成个人访问令牌(PAT)。 # 按照此处说明创建PAT令牌:https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens credential=AzureKeyCredential(os.environ["GITHUB_TOKEN"]), model_info={ "json_output": False, "function_calling": False, "vision": False, "family": "unknown", "structured_output": False, }, ) # 创建流 stream = client.create_stream([UserMessage(content="Write a poem about the ocean", source="user")]) async for chunk in stream: print(chunk, end="", flush=True) print() # 关闭客户端 await client.close() if __name__ == "__main__": asyncio.run(main())
- actual_usage() RequestUsage [源代码]#
- add_usage(usage: RequestUsage) None [源代码]#
- count_tokens(messages: Sequence[Annotated[SystemMessage | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[Tool | ToolSchema] = []) int [源代码]#
- async create(messages: Sequence[Annotated[SystemMessage | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[Tool | ToolSchema] = [], json_output: bool | type[BaseModel] | None = None, extra_create_args: Mapping[str, Any] = {}, cancellation_token: CancellationToken | None = None) CreateResult [源代码]#
从模型创建单个响应。
- 参数:
messages (Sequence[LLMMessage]) -- 发送给模型的消息。
tools (Sequence[Tool | ToolSchema], optional) -- 与模型一起使用的工具。默认为 []。
json_output (Optional[bool | type[BaseModel]], optional) -- 是否使用 JSON 模式、结构化输出或都不使用。 默认为 None。如果设置为 Pydantic BaseModel 类型, 将用作结构化输出的输出类型。 如果设置为布尔值,将用于确定是否使用 JSON 模式。 如果设置为 True,请确保在指令或提示中指示模型生成 JSON 输出。
extra_create_args (Mapping[str, Any], optional) -- 传递给底层客户端的额外参数。默认为 {}。
cancellation_token (Optional[CancellationToken], optional) -- 用于取消的令牌。默认为 None。
- Returns:
CreateResult -- 模型调用的结果。
- async create_stream(messages: Sequence[Annotated[SystemMessage | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[Tool | ToolSchema] = [], json_output: bool | type[BaseModel] | None = None, extra_create_args: Mapping[str, Any] = {}, cancellation_token: CancellationToken | None = None) AsyncGenerator[str | CreateResult, None] [源代码]#
从模型创建以 CreateResult 结尾的字符串块流。
- 参数:
messages (Sequence[LLMMessage]) -- 发送给模型的消息。
tools (Sequence[Tool | ToolSchema], optional) -- 与模型一起使用的工具。默认为 []。
json_output (Optional[bool | type[BaseModel]], optional) --
是否使用 JSON 模式、结构化输出或都不使用。 默认为 None。如果设置为 Pydantic BaseModel 类型, 将用作结构化输出的输出类型。 如果设置为布尔值,将用于确定是否使用 JSON 模式。 如果设置为 True,请确保在指令或提示中指示模型生成 JSON 输出。
extra_create_args (Mapping[str, Any], optional) -- 传递给底层客户端的额外参数。默认为 {}。
cancellation_token (Optional[CancellationToken], optional) -- 用于取消的令牌。默认为 None。
- Returns:
AsyncGenerator[Union[str, CreateResult], None] -- 生成字符串块并以
CreateResult
结尾的生成器。
- remaining_tokens(messages: Sequence[Annotated[SystemMessage | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[Tool | ToolSchema] = []) int [源代码]#
- total_usage() RequestUsage [源代码]#