Без опису
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package config
  2. import "git.x2erp.com/qdy/go-svc-ai/internal/factory"
  3. // 模拟数据库中的配置
  4. var MockConfigs = map[string]*factory.ModelConfig{
  5. // OpenAI配置
  6. "openai-gpt4": {
  7. Provider: "openai",
  8. BaseURL: "https://api.openai.com/v1",
  9. APIKey: "sk-xxx", // 实际使用时从环境变量/数据库读取
  10. Model: "gpt-4",
  11. MaxTokens: 2000,
  12. Temperature: 0.7,
  13. Timeout: 30,
  14. },
  15. // DeepSeek配置
  16. "deepseek-chat": {
  17. Provider: "deepseek",
  18. BaseURL: "https://api.deepseek.com",
  19. APIKey: "sk-xxx",
  20. Model: "deepseek-chat",
  21. MaxTokens: 2048,
  22. Temperature: 0.7,
  23. Timeout: 30,
  24. },
  25. // Claude配置
  26. "claude-3": {
  27. Provider: "claude",
  28. BaseURL: "https://api.anthropic.com/v1",
  29. APIKey: "sk-xxx",
  30. Model: "claude-3-sonnet",
  31. MaxTokens: 4096,
  32. Temperature: 0.8,
  33. Timeout: 60,
  34. },
  35. // 流式专用配置
  36. "openai-stream": {
  37. Provider: "openai",
  38. BaseURL: "https://api.openai.com/v1",
  39. APIKey: "sk-xxx",
  40. Model: "gpt-3.5-turbo",
  41. MaxTokens: 1000,
  42. Temperature: 0.9,
  43. Timeout: 60, // 流式需要更长超时
  44. },
  45. }
  46. // GetConfig 模拟从数据库读取配置
  47. func GetConfig(configKey string) (*factory.ModelConfig, error) {
  48. if config, exists := MockConfigs[configKey]; exists {
  49. return config, nil
  50. }
  51. return nil, &ConfigError{Msg: "配置不存在: " + configKey}
  52. }
  53. // ConfigError 配置错误
  54. type ConfigError struct {
  55. Msg string
  56. }
  57. func (e *ConfigError) Error() string {
  58. return e.Msg
  59. }