mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-09-29 22:56:39 +08:00
* ✨ feat: Add support for retrieving model list from providers * 🔖 chore: Custom channel automatically get the model
30 lines
685 B
Go
30 lines
685 B
Go
package openai
|
|
|
|
import (
|
|
"errors"
|
|
"net/http"
|
|
)
|
|
|
|
func (p *OpenAIProvider) GetModelList() ([]string, error) {
|
|
fullRequestURL := p.GetFullRequestURL(p.Config.ModelList, "")
|
|
headers := p.GetRequestHeaders()
|
|
|
|
req, err := p.Requester.NewRequest(http.MethodGet, fullRequestURL, p.Requester.WithHeader(headers))
|
|
if err != nil {
|
|
return nil, errors.New("new_request_failed")
|
|
}
|
|
|
|
response := &ModelListResponse{}
|
|
_, errWithCode := p.Requester.SendRequest(req, response, false)
|
|
if errWithCode != nil {
|
|
return nil, errors.New(errWithCode.Message)
|
|
}
|
|
|
|
var modelList []string
|
|
for _, model := range response.Data {
|
|
modelList = append(modelList, model.Id)
|
|
}
|
|
|
|
return modelList, nil
|
|
}
|