Solon-AI配置示例:各种配置方式示例

Solon-AI配置示例:各种配置方式示例

【免费下载链接】solon-ai Java AI & MCP 应用开发框架(LLM,Function Call,RAG,Embedding,Reranking,Flow,MCP Server,Mcp Client,Mcp Proxy)。同时兼容 java8 ~ java24。也可嵌入到 SpringBoot2、jFinal、Vert.x 等框架中使用。 【免费下载链接】solon-ai 项目地址: https://gitcode.com/opensolon/solon-ai

还在为AI应用配置而烦恼?一文掌握Solon-AI的多种配置方式,从基础到高级,从YAML到代码配置,全面解决你的配置难题!

通过本文,你将学会:

  • ✅ YAML配置文件配置AI服务
  • ✅ Java代码配置方式
  • ✅ 环境变量配置方法
  • ✅ 多环境配置策略
  • ✅ 代理和高级配置技巧

1. YAML配置文件配置

1.1 基础聊天模型配置

solon.ai.chat:
  qwen:
    apiUrl: "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation"
    apiKey: "${DASHSCOPE_API_KEY}"
    model: "qwen-max"
    temperature: 0.7
    maxTokens: 2000

  openai:
    apiUrl: "https://api.openai.com/v1/chat/completions"
    apiKey: "${OPENAI_API_KEY}"
    model: "gpt-4"
    timeout: 30000

1.2 嵌入模型配置

solon.ai.embed:
  bge-m3:
    apiUrl: "http://127.0.0.1:11434/api/embed"
    provider: "ollama"
    model: "bge-m3:latest"
    dimensions: 1024

  openai-embed:
    apiUrl: "https://api.openai.com/v1/embeddings"
    apiKey: "${OPENAI_API_KEY}"
    model: "text-embedding-3-small"

1.3 向量数据库配置

solon.ai.repo:
  chroma:
    type: "chroma"
    host: "localhost"
    port: 8000
    collection: "documents"

  redis:
    type: "redis"
    host: "localhost"
    port: 6379
    database: 0
    index: "vector_index"

2. Java代码配置方式

2.1 注解配置方式

@Configuration
public class AiConfig {
    
    @Bean
    public ChatModel chatModel(@Inject("${solon.ai.chat.qwen}") ChatModel chatModel) {
        return chatModel;
    }

    @Bean 
    public EmbeddingModel embeddingModel(@Inject("${solon.ai.embed.bge-m3}") EmbeddingModel embeddingModel) {
        return embeddingModel;
    }
}

2.2 编程式配置

@Configuration
public class CustomAiConfig {
    
    @Bean
    public ChatModel customChatModel() {
        ChatConfig config = new ChatConfig();
        config.setApiUrl("https://api.example.com/chat");
        config.setApiKey("your-api-key");
        config.setModel("custom-model");
        config.setTemperature(0.8);
        
        return ChatModel.of(config);
    }
    
    @Bean
    public EmbeddingModel customEmbeddingModel() {
        EmbeddingConfig config = new EmbeddingConfig();
        config.setApiUrl("https://api.example.com/embed");
        config.setApiKey("your-embed-key");
        config.setModel("embed-model");
        config.setDimensions(768);
        
        return EmbeddingModel.of(config);
    }
}

3. 环境变量配置

3.1 环境变量注入配置

solon.ai.chat:
  openai:
    apiUrl: "https://api.openai.com/v1/chat/completions"
    apiKey: "${OPENAI_API_KEY:sk-default-key}"  # 默认值支持
    model: "${CHAT_MODEL:gpt-4}"
    timeout: "${CHAT_TIMEOUT:30000}"

solon.ai.embed:
  openai:
    apiKey: "${OPENAI_API_KEY}"
    model: "text-embedding-3-small"

3.2 系统属性配置

# 启动时设置环境变量
export OPENAI_API_KEY=sk-your-key
export CHAT_MODEL=gpt-4-turbo

# 或者使用Java系统属性
java -DOPENAI_API_KEY=sk-your-key -DCHAT_MODEL=gpt-4-turbo -jar app.jar

4. 多环境配置策略

4.1 环境特定配置文件

# application-dev.yml (开发环境)
solon.ai.chat:
  openai:
    apiUrl: "https://api.openai.com/v1/chat/completions"
    apiKey: "dev-api-key"
    model: "gpt-4"

# application-prod.yml (生产环境)
solon.ai.chat:
  openai:
    apiUrl: "https://api.openai.com/v1/chat/completions"
    apiKey: "${PROD_OPENAI_KEY}"
    model: "gpt-4-turbo"
    timeout: 60000

4.2 配置优先级覆盖

mermaid

5. 高级配置技巧

5.1 代理配置

solon.ai.chat:
  proxy-example:
    apiUrl: "http://127.0.0.1:11434/api/chat"
    provider: "ollama"
    model: "llama3.2"
    proxy:
      type: "HTTP"
      host: "127.0.0.1"
      port: 9817
      username: "proxy-user"
      password: "proxy-pass"

5.2 超时和重试配置

solon.ai.chat:
  robust-config:
    apiUrl: "https://api.example.com/chat"
    apiKey: "your-key"
    model: "gpt-4"
    timeout: 30000
    connectTimeout: 10000
    readTimeout: 30000
    maxRetries: 3
    retryDelay: 1000

5.3 自定义请求头

solon.ai.chat:
  custom-headers:
    apiUrl: "https://api.example.com/chat"
    apiKey: "your-key"
    model: "custom-model"
    headers:
      X-Custom-Header: "custom-value"
      X-Request-ID: "${request.id}"
      User-Agent: "MyAIApp/1.0"

6. 配置验证和测试

6.1 配置验证测试

@SolonTest
public class ConfigTest {
    
    @Test
    public void testChatConfig() {
        ChatConfig config = Solon.cfg().toBean("solon.ai.chat.proxy1", ChatConfig.class);
        assert config != null;
        assert config.getProxy() != null;
        assert config.getProxy().getHost().equals("127.0.0.1");
    }
    
    @Test
    public void testEmbeddingConfig() {
        EmbeddingConfig config = Solon.cfg().toBean("solon.ai.embed.bge-m3", EmbeddingConfig.class);
        assert config != null;
        assert config.getProvider().equals("ollama");
    }
}

7. 最佳实践总结

7.1 配置管理原则

原则说明示例
安全第一API密钥使用环境变量apiKey: "${API_KEY}"
环境隔离不同环境使用不同配置application-{env}.yml
默认值提供合理的默认值timeout: "${TIMEOUT:30000}"
配置验证启动时验证配置有效性单元测试验证

7.2 故障排除指南

mermaid

8. 完整配置示例

8.1 生产环境完整配置

# application-prod.yml
solon:
  ai:
    chat:
      openai:
        apiUrl: "https://api.openai.com/v1/chat/completions"
        apiKey: "${OPENAI_API_KEY}"
        model: "gpt-4-turbo"
        temperature: 0.7
        maxTokens: 4000
        timeout: 60000
        maxRetries: 3
        
      ollama:
        apiUrl: "http://localhost:11434/api/chat"
        provider: "ollama"
        model: "llama3.2"
        temperature: 0.8
    
    embed:
      openai:
        apiUrl: "https://api.openai.com/v1/embeddings"
        apiKey: "${OPENAI_API_KEY}"
        model: "text-embedding-3-small"
        dimensions: 1536
        
      bge-m3:
        apiUrl: "http://localhost:11434/api/embed"
        provider: "ollama"
        model: "bge-m3:latest"
    
    repo:
      chroma:
        type: "chroma"
        host: "chroma-server"
        port: 8000
        collection: "documents_prod"

通过以上各种配置方式的详细示例,你应该能够根据实际需求选择合适的配置方案。记住:安全配置、环境隔离、配置验证是AI应用配置的三大黄金法则!

📌 提示:点赞收藏本文,配置AI应用不再迷茫!如有疑问,欢迎在评论区交流讨论~

【免费下载链接】solon-ai Java AI & MCP 应用开发框架(LLM,Function Call,RAG,Embedding,Reranking,Flow,MCP Server,Mcp Client,Mcp Proxy)。同时兼容 java8 ~ java24。也可嵌入到 SpringBoot2、jFinal、Vert.x 等框架中使用。 【免费下载链接】solon-ai 项目地址: https://gitcode.com/opensolon/solon-ai

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值