autogen_ext.models.semantic_kernel#
- class SKChatCompletionAdapter(sk_client: ChatCompletionClientBase, kernel: Kernel | None = None, prompt_settings: PromptExecutionSettings | None = None, model_info: ModelInfo | None = None, service_id: str | None = None)[Quelle]#
Bases:
ChatCompletionClientSKChatCompletionAdapter ist ein Adapter, der es ermöglicht, Semantic Kernel Model Clients als Autogen ChatCompletion Clients zu verwenden. Dies ermöglicht die nahtlose Integration von Semantic Kernel Connectoren (z.B. Azure OpenAI, Google Gemini, Ollama etc.) in Autogen Agenten, die auf einer ChatCompletionClient-Schnittstelle basieren.
Durch die Nutzung dieses Adapters können Sie
Einen Kernel und einen beliebigen unterstützten Semantic Kernel ChatCompletionClientBase Connector übergeben.
Tools (über Autogen Tool oder ToolSchema) für Funktionsaufrufe während der Chat-Vervollständigung bereitstellen.
Antworten streamen oder sie in einer einzelnen Anfrage abrufen.
- Prompt-Einstellungen bereitstellen, um das Verhalten der Chat-Vervollständigung entweder global über den Konstruktor
oder auf Anfragebasis über das extra_create_args Dictionary zu steuern.
Die Liste der zusätzlich installierbaren Pakete
semantic-kernel-anthropic: Installieren Sie dieses Paket, um Anthropic-Modelle zu verwenden.
semantic-kernel-google: Installieren Sie dieses Paket, um Google Gemini-Modelle zu verwenden.
semantic-kernel-ollama: Installieren Sie dieses Paket, um Ollama-Modelle zu verwenden.
semantic-kernel-mistralai: Installieren Sie dieses Paket, um MistralAI-Modelle zu verwenden.
semantic-kernel-aws: Installieren Sie dieses Paket, um AWS-Modelle zu verwenden.
semantic-kernel-hugging-face: Installieren Sie dieses Paket, um Hugging Face-Modelle zu verwenden.
- Parameter:
sk_client (ChatCompletionClientBase) – Der Semantic Kernel Client, der umschlossen werden soll (z.B. AzureChatCompletion, GoogleAIChatCompletion, OllamaChatCompletion).
kernel (Optional[Kernel]) – Die Semantic Kernel-Instanz, die zur Ausführung von Anfragen verwendet werden soll. Wenn nicht angegeben, muss für jede Anfrage ein Kernel in `extra_create_args` übergeben werden.
prompt_settings (Optional[PromptExecutionSettings]) – Standardmäßige Prompt-Ausführungseinstellungen. Kann pro Anfrage überschrieben werden.
model_info (Optional[ModelInfo]) – Informationen über die Fähigkeiten des Modells.
service_id (Optional[str]) – Optionale Service-ID.
Examples
Anthropic-Modelle mit Funktionsaufrufen
pip install "autogen-ext[semantic-kernel-anthropic]"
import asyncio import os from autogen_agentchat.agents import AssistantAgent from autogen_agentchat.ui import Console from autogen_core.models import ModelFamily, UserMessage from autogen_ext.models.semantic_kernel import SKChatCompletionAdapter from semantic_kernel import Kernel from semantic_kernel.connectors.ai.anthropic import AnthropicChatCompletion, AnthropicChatPromptExecutionSettings from semantic_kernel.memory.null_memory import NullMemory async def get_weather(city: str) -> str: """Get the weather for a city.""" return f"The weather in {city} is 75 degrees." async def main() -> None: sk_client = AnthropicChatCompletion( ai_model_id="claude-3-5-sonnet-20241022", api_key=os.environ["ANTHROPIC_API_KEY"], service_id="my-service-id", # Optional; for targeting specific services within Semantic Kernel ) settings = AnthropicChatPromptExecutionSettings( temperature=0.2, ) model_client = SKChatCompletionAdapter( sk_client, kernel=Kernel(memory=NullMemory()), prompt_settings=settings, model_info={ "function_calling": True, "json_output": True, "vision": True, "family": ModelFamily.CLAUDE_3_5_SONNET, "structured_output": True, }, ) # Call the model directly. response = await model_client.create([UserMessage(content="What is the capital of France?", source="test")]) print(response) # Create an assistant agent with the model client. assistant = AssistantAgent( "assistant", model_client=model_client, system_message="You are a helpful assistant.", tools=[get_weather] ) # Call the assistant with a task. await Console(assistant.run_stream(task="What is the weather in Paris and London?")) asyncio.run(main())
Google Gemini-Modelle mit Funktionsaufrufen
pip install "autogen-ext[semantic-kernel-google]"
import asyncio import os from autogen_agentchat.agents import AssistantAgent from autogen_agentchat.ui import Console from autogen_core.models import UserMessage, ModelFamily from autogen_ext.models.semantic_kernel import SKChatCompletionAdapter from semantic_kernel import Kernel from semantic_kernel.connectors.ai.google.google_ai import ( GoogleAIChatCompletion, GoogleAIChatPromptExecutionSettings, ) from semantic_kernel.memory.null_memory import NullMemory def get_weather(city: str) -> str: """Get the weather for a city.""" return f"The weather in {city} is 75 degrees." async def main() -> None: sk_client = GoogleAIChatCompletion( gemini_model_id="gemini-2.0-flash", api_key=os.environ["GEMINI_API_KEY"], ) settings = GoogleAIChatPromptExecutionSettings( temperature=0.2, ) kernel = Kernel(memory=NullMemory()) model_client = SKChatCompletionAdapter( sk_client, kernel=kernel, prompt_settings=settings, model_info={ "family": ModelFamily.GEMINI_2_0_FLASH, "function_calling": True, "json_output": True, "vision": True, "structured_output": True, }, ) # Call the model directly. model_result = await model_client.create( messages=[UserMessage(content="What is the capital of France?", source="User")] ) print(model_result) # Create an assistant agent with the model client. assistant = AssistantAgent( "assistant", model_client=model_client, tools=[get_weather], system_message="You are a helpful assistant." ) # Call the assistant with a task. stream = assistant.run_stream(task="What is the weather in Paris and London?") await Console(stream) asyncio.run(main())
Ollama-Modelle
pip install "autogen-ext[semantic-kernel-ollama]"
import asyncio from autogen_agentchat.agents import AssistantAgent from autogen_core.models import UserMessage from autogen_ext.models.semantic_kernel import SKChatCompletionAdapter from semantic_kernel import Kernel from semantic_kernel.connectors.ai.ollama import OllamaChatCompletion, OllamaChatPromptExecutionSettings from semantic_kernel.memory.null_memory import NullMemory async def main() -> None: sk_client = OllamaChatCompletion( host="https://:11434", ai_model_id="llama3.2:latest", ) ollama_settings = OllamaChatPromptExecutionSettings( options={"temperature": 0.5}, ) model_client = SKChatCompletionAdapter( sk_client, kernel=Kernel(memory=NullMemory()), prompt_settings=ollama_settings ) # Call the model directly. model_result = await model_client.create( messages=[UserMessage(content="What is the capital of France?", source="User")] ) print(model_result) # Create an assistant agent with the model client. assistant = AssistantAgent("assistant", model_client=model_client) # Call the assistant with a task. result = await assistant.run(task="What is the capital of France?") print(result) asyncio.run(main())
- async create(messages: Sequence[Annotated[SystemMessage | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[Tool | ToolSchema] = [], tool_choice: Tool | Literal['auto', 'required', 'none'] = 'auto', json_output: bool | type[BaseModel] | None = None, extra_create_args: Mapping[str, Any] = {}, cancellation_token: CancellationToken | None = None) CreateResult[Quelle]#
Erstellt eine Chat-Vervollständigung unter Verwendung des Semantic Kernel Clients.
Das extra_create_args Dictionary kann zwei spezielle Schlüssel enthalten
- „kernel“ (optional)
Eine Instanz von
semantic_kernel.Kernel, die zur Ausführung der Anfrage verwendet wird. Wenn sie weder im Konstruktor noch in `extra_create_args` angegeben wird, wird ein `ValueError` ausgelöst.
- „prompt_execution_settings“ (optional)
Eine Instanz einer Unterklasse von
PromptExecutionSettings, die dem zugrunde liegenden Semantic Kernel Client entspricht (z.B. AzureChatPromptExecutionSettings, GoogleAIChatPromptExecutionSettings). Wenn sie nicht angegeben wird, werden die Standard-Prompt-Einstellungen des Adapters verwendet.
- Parameter:
messages – Die Liste der LLM-Nachrichten, die gesendet werden sollen.
tools – Die Tools, die während des Chats aufgerufen werden können.
json_output – Ob das Modell JSON zurückgeben soll.
extra_create_args – Zusätzliche Argumente zur Steuerung des Chat-Vervollständigungsverhaltens.
cancellation_token – Token, das die Abbrechung der Anfrage ermöglicht.
- Gibt zurück:
CreateResult – Das Ergebnis der Chat-Vervollständigung.
- async create_stream(messages: Sequence[Annotated[SystemMessage | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[Tool | ToolSchema] = [], tool_choice: Tool | Literal['auto', 'required', 'none'] = 'auto', json_output: bool | type[BaseModel] | None = None, extra_create_args: Mapping[str, Any] = {}, cancellation_token: CancellationToken | None = None) AsyncGenerator[str | CreateResult, None][Quelle]#
Erstellt eine gestreamte Chat-Vervollständigung unter Verwendung des Semantic Kernel Clients.
Das extra_create_args Dictionary kann zwei spezielle Schlüssel enthalten
- „kernel“ (optional)
Eine Instanz von
semantic_kernel.Kernel, die zur Ausführung der Anfrage verwendet wird. Wenn sie weder im Konstruktor noch in `extra_create_args` angegeben wird, wird ein `ValueError` ausgelöst.
- „prompt_execution_settings“ (optional)
Eine Instanz einer Unterklasse von
PromptExecutionSettings, die dem zugrunde liegenden Semantic Kernel Client entspricht (z.B. AzureChatPromptExecutionSettings, GoogleAIChatPromptExecutionSettings). Wenn sie nicht angegeben wird, werden die Standard-Prompt-Einstellungen des Adapters verwendet.
- Parameter:
messages – Die Liste der LLM-Nachrichten, die gesendet werden sollen.
tools – Die Tools, die während des Chats aufgerufen werden können.
json_output – Ob das Modell JSON zurückgeben soll.
extra_create_args – Zusätzliche Argumente zur Steuerung des Chat-Vervollständigungsverhaltens.
cancellation_token – Token, das die Abbrechung der Anfrage ermöglicht.
- Gibt:
Union[str, CreateResult] – Entweder ein String-Chunk der Antwort oder ein CreateResult, das Funktionsaufrufe enthält.
- actual_usage() RequestUsage[Quelle]#
- total_usage() RequestUsage[Quelle]#
- count_tokens(messages: Sequence[Annotated[SystemMessage | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[Tool | ToolSchema] = []) int[Quelle]#
- remaining_tokens(messages: Sequence[Annotated[SystemMessage | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[Tool | ToolSchema] = []) int[Quelle]#