Partekatu honen bidez:


Ollama

Ollama permite ejecutar modelos de código abierto localmente y usarlos con Agent Framework. Esto es ideal para el desarrollo, las pruebas y los escenarios en los que necesita mantener los datos en el entorno local.

En el ejemplo siguiente se muestra cómo crear un agente mediante Ollama:

using System;
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;

// Create an Ollama agent using Microsoft.Extensions.AI.Ollama
// Requires: dotnet add package Microsoft.Extensions.AI.Ollama --prerelease
var chatClient = new OllamaChatClient(
    new Uri("http://localhost:11434"),
    modelId: "llama3.2");

AIAgent agent = chatClient.AsAIAgent(
    instructions: "You are a helpful assistant running locally via Ollama.");

Console.WriteLine(await agent.RunAsync("What is the largest city in France?"));

Prerrequisitos

Asegúrese de que Ollama está instalado y ejecutándose localmente con un modelo descargado antes de ejecutar cualquier ejemplo:

ollama pull llama3.2

Nota:

No todos los modelos admiten llamadas a funciones. Para el uso de herramientas, pruebe llama3.2 o qwen3:4b.

Instalación

pip install agent-framework-ollama --pre

Configuración

OLLAMA_MODEL="llama3.2"

El cliente nativo se conecta de http://localhost:11434 forma predeterminada. Para invalidar esto, pase host al cliente.

Creación de agentes de Ollama

OllamaChatClient proporciona integración nativa de Ollama con compatibilidad completa con herramientas de funciones y streaming.

import asyncio
from agent_framework.ollama import OllamaChatClient

async def main():
    agent = OllamaChatClient().as_agent(
        name="HelpfulAssistant",
        instructions="You are a helpful assistant running locally via Ollama.",
    )
    result = await agent.run("What is the largest city in France?")
    print(result)

asyncio.run(main())

Herramientas de funciones

import asyncio
from datetime import datetime
from agent_framework.ollama import OllamaChatClient

def get_time(location: str) -> str:
    """Get the current time."""
    return f"The current time in {location} is {datetime.now().strftime('%I:%M %p')}."

async def main():
    agent = OllamaChatClient().as_agent(
        name="TimeAgent",
        instructions="You are a helpful time agent.",
        tools=get_time,
    )
    result = await agent.run("What time is it in Seattle?")
    print(result)

asyncio.run(main())

Transmisión en línea

async def streaming_example():
    agent = OllamaChatClient().as_agent(
        instructions="You are a helpful assistant.",
    )
    print("Agent: ", end="", flush=True)
    async for chunk in agent.run("Tell me about Python.", stream=True):
        if chunk.text:
            print(chunk.text, end="", flush=True)
    print()

Pasos siguientes