one-api/providers/cohere/model.go
Buer 7263582b9b
feat: Add support for retrieving model list from providers (#188)
*  feat: Add support for retrieving model list from providers

* 🔖 chore: Custom channel automatically get the model
2024-05-16 15:21:13 +08:00

36 lines
838 B
Go

package cohere
import (
"errors"
"net/http"
"net/url"
)
func (p *CohereProvider) GetModelList() ([]string, error) {
params := url.Values{}
params.Add("page_size", "1000")
params.Add("endpoint", "chat")
queryString := params.Encode()
fullRequestURL := p.GetFullRequestURL(p.Config.ModelList) + "?" + queryString
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.Models {
modelList = append(modelList, model.Name)
}
return modelList, nil
}