mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-09-30 07:06:38 +08:00
99 lines
2.3 KiB
Go
99 lines
2.3 KiB
Go
package ali
|
|
|
|
import (
|
|
"one-api/types"
|
|
)
|
|
|
|
type AliError struct {
|
|
Code string `json:"code"`
|
|
Message string `json:"message"`
|
|
RequestId string `json:"request_id"`
|
|
}
|
|
|
|
type AliUsage struct {
|
|
InputTokens int `json:"input_tokens"`
|
|
OutputTokens int `json:"output_tokens"`
|
|
TotalTokens int `json:"total_tokens"`
|
|
}
|
|
|
|
type AliMessage struct {
|
|
Content any `json:"content"`
|
|
Role string `json:"role"`
|
|
}
|
|
|
|
type AliMessagePart struct {
|
|
Text string `json:"text,omitempty"`
|
|
Image string `json:"image,omitempty"`
|
|
}
|
|
|
|
type AliInput struct {
|
|
// Prompt string `json:"prompt"`
|
|
Messages []AliMessage `json:"messages"`
|
|
}
|
|
|
|
type AliParameters struct {
|
|
TopP float64 `json:"top_p,omitempty"`
|
|
TopK int `json:"top_k,omitempty"`
|
|
Seed uint64 `json:"seed,omitempty"`
|
|
EnableSearch bool `json:"enable_search,omitempty"`
|
|
IncrementalOutput bool `json:"incremental_output,omitempty"`
|
|
ResultFormat string `json:"result_format,omitempty"`
|
|
}
|
|
|
|
type AliChatRequest struct {
|
|
Model string `json:"model"`
|
|
Input AliInput `json:"input"`
|
|
Parameters AliParameters `json:"parameters,omitempty"`
|
|
}
|
|
|
|
type AliChoice struct {
|
|
FinishReason string `json:"finish_reason"`
|
|
Message types.ChatCompletionMessage `json:"message"`
|
|
}
|
|
|
|
type AliOutput struct {
|
|
Choices []types.ChatCompletionChoice `json:"choices"`
|
|
FinishReason string `json:"finish_reason,omitempty"`
|
|
}
|
|
|
|
func (o *AliOutput) ToChatCompletionChoices() []types.ChatCompletionChoice {
|
|
for i := range o.Choices {
|
|
_, ok := o.Choices[i].Message.Content.(string)
|
|
if ok {
|
|
continue
|
|
}
|
|
|
|
o.Choices[i].Message.Content = o.Choices[i].Message.ParseContent()
|
|
}
|
|
return o.Choices
|
|
}
|
|
|
|
type AliChatResponse struct {
|
|
Output AliOutput `json:"output"`
|
|
Usage AliUsage `json:"usage"`
|
|
AliError
|
|
}
|
|
|
|
type AliEmbeddingRequest struct {
|
|
Model string `json:"model"`
|
|
Input struct {
|
|
Texts []string `json:"texts"`
|
|
} `json:"input"`
|
|
Parameters *struct {
|
|
TextType string `json:"text_type,omitempty"`
|
|
} `json:"parameters,omitempty"`
|
|
}
|
|
|
|
type AliEmbedding struct {
|
|
Embedding []float64 `json:"embedding"`
|
|
TextIndex int `json:"text_index"`
|
|
}
|
|
|
|
type AliEmbeddingResponse struct {
|
|
Output struct {
|
|
Embeddings []AliEmbedding `json:"embeddings"`
|
|
} `json:"output"`
|
|
Usage AliUsage `json:"usage"`
|
|
AliError
|
|
}
|