Astreus

LLM

在 Astreus 文档中了解 LLM,获取用于构建智能体系统的设置指导、API 模式和实用示例。 了解构建可靠的 Astreus 智能体系统所需的设置模式、API 和实用示例。

面向多个 LLM 提供方的统一接口,支持自动路由

概述

LLM 抽象层提供与多个 AI 提供方的无缝集成,让你可以在 OpenAI、Claude、Gemini 和 Ollama 之间自由切换,而无需修改代码。它负责处理各提供方特有的实现、消息格式化和流式传输,同时对外提供统一一致的 API。

支持的提供方

Astreus 支持四大主流 LLM 提供方,并具备自动模型路由能力:

OpenAI

全部 14 个受支持的模型:

  • 最新:gpt-4.5gpt-4.1gpt-4.1-minigpt-4.1-nanoo4-minio4-mini-higho3
  • 稳定版:gpt-4ogpt-4o-minigpt-4-turbogpt-4gpt-3.5-turbogpt-3.5-turbo-16kgpt-3.5-turbo-instruct
  • API 密钥:设置 OPENAI_API_KEY 环境变量

Anthropic Claude

全部 9 个受支持的模型:

  • 最新:claude-sonnet-4-20250514claude-opus-4-20250514claude-3.7-sonnet-20250224
  • 稳定版:claude-3-5-sonnet-20241022claude-3-5-sonnet-20240620claude-3-5-haiku-20241022claude-3-opus-20240229claude-3-sonnet-20240229claude-3-haiku-20240307
  • API 密钥:设置 ANTHROPIC_API_KEY 环境变量

Google Gemini

全部 12 个受支持的模型:

  • 最新:gemini-2.5-progemini-2.5-pro-deep-thinkgemini-2.5-flashgemini-2.5-flash-lite
  • 稳定版:gemini-2.0-flashgemini-2.0-flash-thinkinggemini-2.0-flash-litegemini-2.0-pro-experimentalgemini-1.5-progemini-1.5-flashgemini-1.5-flash-8bgemini-pro
  • API 密钥:设置 GEMINI_API_KEY 环境变量

Ollama(本地)

全部 31 个受支持的模型:

  • 最新:deepseek-r1deepseek-v3deepseek-v2.5deepseek-coderdeepseek-coder-v2qwen3qwen2.5-coderllama3.3gemma3phi4
  • 常用:mistral-smallcodellamallama3.2llama3.1qwen2.5gemma2phi3mistralcodegemmawizardlm2
  • 其他:dolphin-mistralopenhermesdeepcoderstable-codewizardcodermagicodersolaryizephyrorca-minivicuna
  • 配置:设置 OLLAMA_BASE_URL(默认:http://localhost:11434)

配置

1

环境变量

配置你的 API 密钥和相关设置:

# OpenAI
export OPENAI_API_KEY="your-openai-key"
export OPENAI_BASE_URL="https://api.openai.com/v1"  # Optional

# Anthropic Claude
export ANTHROPIC_API_KEY="your-anthropic-key"
export ANTHROPIC_BASE_URL="https://api.anthropic.com"  # Optional

# Google Gemini
export GEMINI_API_KEY="your-gemini-key"

# Ollama (Local)
export OLLAMA_BASE_URL="http://localhost:11434"  # Optional
2

代理配置

在创建代理时指定模型:

import { Agent } from '@astreus-ai/astreus';

const agent = await Agent.create({
  name: 'MyAgent',
  model: 'gpt-4.5',  // Model automatically routes to correct provider
  temperature: 0.7,
  maxTokens: 2000
});

使用示例

基本 LLM 用法

import { getLLM } from '@astreus-ai/astreus';

const llm = getLLM();

// Generate response
const response = await llm.generateResponse({
  model: 'claude-sonnet-4-20250514',
  messages: [{ role: 'user', content: 'Explain quantum computing' }],
  temperature: 0.7,
  maxTokens: 1000
});

console.log(response.content);

流式响应

// Stream response in real-time
for await (const chunk of llm.generateStreamResponse({
  model: 'gpt-4.5',
  messages: [{ role: 'user', content: 'Write a story about AI' }],
  stream: true
})) {
  if (!chunk.done) {
    process.stdout.write(chunk.content);
  }
}

函数调用

const response = await llm.generateResponse({
  model: 'gpt-4o',
  messages: [{ role: 'user', content: 'What\'s the weather in Tokyo?' }],
  tools: [{
    type: 'function',
    function: {
      name: 'get_weather',
      description: 'Get current weather information',
      parameters: {
        type: 'object',
        properties: {
          location: { 
            type: 'string',
            description: 'City name'
          }
        },
        required: ['location']
      }
    }
  }]
});

// Handle tool calls
if (response.toolCalls) {
  response.toolCalls.forEach(call => {
    console.log(`Tool: ${call.function.name}`);
    console.log(`Args: ${call.function.arguments}`);
  });
}

LLM 选项

通过以下选项配置 LLM 的行为:

interface LLMRequestOptions {
  model: string;              // Required: Model identifier
  messages: LLMMessage[];     // Required: Conversation history
  temperature?: number;       // Creativity level (0.0-1.0, default: 0.7)
  maxTokens?: number;         // Max output tokens (default: 4096)
  stream?: boolean;           // Enable streaming responses
  systemPrompt?: string;      // System instructions
  tools?: Tool[];             // Function calling tools
}

参数详解

  • temperature:控制随机性(0.0 = 确定性输出,1.0 = 高度创造性)
  • maxTokens:响应中的最大 token 数(因模型而异)
  • stream:为长响应启用实时流式传输
  • systemPrompt:设置模型的行为和上下文
  • tools:启用函数调用能力

提供方特性

特性OpenAIClaudeGeminiOllama
流式传输
函数调用有限有限
视觉
嵌入
Token 用量统计有限
自定义 Base URL
本地模型

视觉模型

每个提供方都支持特定的图像分析模型:

OpenAI 视觉

  • gpt-4ogpt-4o-minigpt-4-turbogpt-4-vision-preview
  • gpt-4o-2024-08-06gpt-4o-2024-05-13

Claude 视觉

  • claude-3-5-sonnet-20241022claude-3-5-sonnet-20240620
  • claude-3-opus-20240229claude-3-sonnet-20240229claude-3-haiku-20240307

Gemini 视觉

  • gemini-1.5-progemini-1.5-flash
  • gemini-1.0-pro-vision-latestgemini-pro-vision

Ollama 视觉

  • llavallava:7bllava:13bllava:34b
  • llava-llama3llava-phi3moondream

嵌入模型

用于知识库和语义搜索:

OpenAI 嵌入

  • text-embedding-3-large(3072 维)
  • text-embedding-3-small(1536 维)
  • text-embedding-ada-002(1536 维)

Gemini 嵌入

  • text-embedding-004
  • embedding-001

Ollama 嵌入

  • nomic-embed-textmxbai-embed-large
  • all-minilmsnowflake-arctic-embed

注意:Claude/Anthropic 不支持嵌入。请使用 OpenAI 或 Gemini 生成嵌入。

其他环境变量

# Dedicated embedding API keys (optional)
OPENAI_EMBEDDING_API_KEY="your-embedding-key"
OPENAI_EMBEDDING_BASE_URL="https://api.openai.com/v1"
GEMINI_EMBEDDING_API_KEY="your-gemini-embedding-key"

# Dedicated vision API keys (optional)
OPENAI_VISION_API_KEY="your-vision-key"
OPENAI_VISION_BASE_URL="https://api.openai.com/v1"
ANTHROPIC_VISION_API_KEY="your-anthropic-vision-key"
ANTHROPIC_VISION_BASE_URL="https://api.anthropic.com"
GEMINI_VISION_API_KEY="your-gemini-vision-key"

模型选择指南

用于代码生成

  • 最佳:gpt-4oclaude-3-5-sonnet-20241022deepseek-coder
  • 快速:gpt-4o-miniclaude-3-5-haiku-20241022

用于推理任务

  • 最佳:claude-opus-4-20250514gpt-4.5o3
  • 均衡:claude-sonnet-4-20250514gpt-4o

用于创意写作

  • 最佳:gpt-4.5claude-3-opus-20240229
  • 快速:gemini-2.5-progpt-4o-mini

用于隐私保护/本地使用

  • 最佳:deepseek-r1llama3.3qwen3
  • 代码:deepseek-codercodellama

最后更新时间:2026年7月6日