client.go 874 B

123456789101112131415161718192021222324252627282930313233
  1. package llm
  2. import (
  3. "github.com/0xJacky/Nginx-UI/internal/transport"
  4. "github.com/0xJacky/Nginx-UI/settings"
  5. "github.com/sashabaranov/go-openai"
  6. "net/http"
  7. )
  8. func GetClient() (*openai.Client, error) {
  9. var config openai.ClientConfig
  10. if openai.APIType(settings.OpenAISettings.APIType) == openai.APITypeAzure {
  11. config = openai.DefaultAzureConfig(settings.OpenAISettings.Token, settings.OpenAISettings.BaseUrl)
  12. } else {
  13. config = openai.DefaultConfig(settings.OpenAISettings.Token)
  14. }
  15. if settings.OpenAISettings.Proxy != "" {
  16. t, err := transport.NewTransport(transport.WithProxy(settings.OpenAISettings.Proxy))
  17. if err != nil {
  18. return nil, err
  19. }
  20. config.HTTPClient = &http.Client{
  21. Transport: t,
  22. }
  23. }
  24. if settings.OpenAISettings.BaseUrl != "" {
  25. config.BaseURL = settings.OpenAISettings.BaseUrl
  26. }
  27. return openai.NewClientWithConfig(config), nil
  28. }