one-api/providers/zhipu/type.go

97 lines
3.0 KiB
Go

package zhipu
import (
"one-api/types"
"time"
)
type ZhipuWebSearch struct {
Enable bool `json:"enable"`
SearchQuery string `json:"search_query,omitempty"`
}
type ZhipuRetrieval struct {
KnowledgeId string `json:"knowledge_id"`
PromptTemplate string `json:"prompt_template,omitempty"`
}
type ZhipuTool struct {
Type string `json:"type"`
Function *types.ChatCompletionFunction `json:"function,omitempty"`
WebSearch *ZhipuWebSearch `json:"web_search,omitempty"`
Retrieval *ZhipuRetrieval `json:"retrieval,omitempty"`
}
type ZhipuRequest struct {
Model string `json:"model"`
Messages []types.ChatCompletionMessage `json:"messages"`
Stream bool `json:"stream,omitempty"`
Temperature float64 `json:"temperature,omitempty"`
TopP float64 `json:"top_p,omitempty"`
MaxTokens int `json:"max_tokens,omitempty"`
Stop []string `json:"stop,omitempty"`
Tools []ZhipuTool `json:"tools,omitempty"`
ToolChoice any `json:"tool_choice,omitempty"`
}
// type ZhipuMessage struct {
// Role string `json:"role"`
// Content string `json:"content"`
// ToolCalls []*types.ChatCompletionToolCalls `json:"tool_calls,omitempty"`
// ToolCallId string `json:"tool_call_id,omitempty"`
// }
type ZhipuResponse struct {
ID string `json:"id"`
Created int64 `json:"created"`
Model string `json:"model"`
Choices []types.ChatCompletionChoice `json:"choices"`
Usage *types.Usage `json:"usage,omitempty"`
ZhipuResponseError
}
type ZhipuStreamResponse struct {
ID string `json:"id"`
Created int64 `json:"created"`
Choices []types.ChatCompletionStreamChoice `json:"choices"`
Usage *types.Usage `json:"usage,omitempty"`
ZhipuResponseError
}
type ZhipuResponseError struct {
Error ZhipuError `json:"error,omitempty"`
}
type ZhipuError struct {
Code string `json:"code"`
Message string `json:"message"`
}
type ZhipuEmbeddingRequest struct {
Model string `json:"model"`
Input string `json:"input"`
}
type ZhipuEmbeddingResponse struct {
Model string `json:"model"`
Data []types.Embedding `json:"data"`
Object string `json:"object"`
Usage *types.Usage `json:"usage"`
ZhipuResponseError
}
type ZhipuImageGenerationRequest struct {
Model string `json:"model"`
Prompt string `json:"prompt"`
}
type ZhipuImageGenerationResponse struct {
Model string `json:"model"`
Data []types.ImageResponseDataInner `json:"data,omitempty"`
ZhipuResponseError
}
type zhipuTokenData struct {
Token string
ExpiryTime time.Time
}