feat(wip): code completion with llm

This commit is contained in:
Jacky 2025-04-15 21:54:51 +08:00
parent 63fb823344
commit a57748a432
No known key found for this signature in database
GPG key ID: 215C21B10DF38B4D
22 changed files with 623 additions and 31 deletions

33
internal/llm/client.go Normal file
View file

@ -0,0 +1,33 @@
package llm
import (
"github.com/0xJacky/Nginx-UI/internal/transport"
"github.com/0xJacky/Nginx-UI/settings"
"github.com/sashabaranov/go-openai"
"net/http"
)
func GetClient() (*openai.Client, error) {
var config openai.ClientConfig
if openai.APIType(settings.OpenAISettings.APIType) == openai.APITypeAzure {
config = openai.DefaultAzureConfig(settings.OpenAISettings.Token, settings.OpenAISettings.BaseUrl)
} else {
config = openai.DefaultConfig(settings.OpenAISettings.Token)
}
if settings.OpenAISettings.Proxy != "" {
t, err := transport.NewTransport(transport.WithProxy(settings.OpenAISettings.Proxy))
if err != nil {
return nil, err
}
config.HTTPClient = &http.Client{
Transport: t,
}
}
if settings.OpenAISettings.BaseUrl != "" {
config.BaseURL = settings.OpenAISettings.BaseUrl
}
return openai.NewClientWithConfig(config), nil
}