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 配置优先级覆盖
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 故障排除指南
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应用不再迷茫!如有疑问,欢迎在评论区交流讨论~
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



