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
68 lines
1.9 KiB
Go
68 lines
1.9 KiB
Go
package mistral
|
||
|
||
import (
|
||
"encoding/json"
|
||
"one-api/types"
|
||
)
|
||
|
||
type MistralChatCompletionRequest struct {
|
||
Model string `json:"model" binding:"required"`
|
||
Messages []types.ChatCompletionMessage `json:"messages" binding:"required"`
|
||
Temperature float64 `json:"temperature,omitempty"` // 0-1
|
||
MaxTokens int `json:"max_tokens,omitempty"`
|
||
TopP float64 `json:"top_p,omitempty"` // 0-1
|
||
N int `json:"n,omitempty"`
|
||
Stream bool `json:"stream,omitempty"`
|
||
Tools []*types.ChatCompletionTool `json:"tools,omitempty"`
|
||
ToolChoice string `json:"tool_choice,omitempty"`
|
||
Seed *int `json:"seed,omitempty"`
|
||
SafePrompt bool `json:"safe_prompt,omitempty"`
|
||
}
|
||
|
||
type MistralError struct {
|
||
Object string `json:"object"`
|
||
Type string `json:"type,omitempty"`
|
||
Message MistralErrorMessages `json:"message,omitempty"`
|
||
}
|
||
|
||
type MistralErrorMessages struct {
|
||
Detail []MistralErrorDetail `json:"detail,omitempty"`
|
||
}
|
||
|
||
type MistralErrorDetail struct {
|
||
Type string `json:"type"`
|
||
Loc any `json:"loc"`
|
||
Msg string `json:"msg"`
|
||
Input string `json:"input"`
|
||
Ctx any `json:"ctx"`
|
||
}
|
||
|
||
func (m *MistralErrorDetail) errorMsg() string {
|
||
// 循环Loc,拼接成字符串
|
||
// 返回字符串
|
||
var errMsg string
|
||
|
||
locStr, _ := json.Marshal(m.Loc)
|
||
|
||
errMsg += "Loc:" + string(locStr) + "Msg:" + m.Msg
|
||
|
||
return errMsg
|
||
}
|
||
|
||
type ChatCompletionStreamResponse struct {
|
||
types.ChatCompletionStreamResponse
|
||
Usage *types.Usage `json:"usage,omitempty"`
|
||
}
|
||
|
||
type ModelListResponse struct {
|
||
Object string `json:"object"`
|
||
Data []ModelDetails `json:"data"`
|
||
}
|
||
|
||
type ModelDetails struct {
|
||
Id string `json:"id"`
|
||
Object string `json:"object"`
|
||
Created int64 `json:"created"`
|
||
OwnedBy string `json:"owned_by"`
|
||
}
|