Feat: add external tool web search
This commit is contained in:
144
models/deepseek.go
Normal file
144
models/deepseek.go
Normal file
@@ -0,0 +1,144 @@
|
||||
package models
|
||||
|
||||
type DSChatReq struct {
|
||||
Messages []RoleMsg `json:"messages"`
|
||||
Model string `json:"model"`
|
||||
Stream bool `json:"stream"`
|
||||
FrequencyPenalty int `json:"frequency_penalty"`
|
||||
MaxTokens int `json:"max_tokens"`
|
||||
PresencePenalty int `json:"presence_penalty"`
|
||||
Temperature float32 `json:"temperature"`
|
||||
TopP float32 `json:"top_p"`
|
||||
// ResponseFormat struct {
|
||||
// Type string `json:"type"`
|
||||
// } `json:"response_format"`
|
||||
// Stop any `json:"stop"`
|
||||
// StreamOptions any `json:"stream_options"`
|
||||
// Tools any `json:"tools"`
|
||||
// ToolChoice string `json:"tool_choice"`
|
||||
// Logprobs bool `json:"logprobs"`
|
||||
// TopLogprobs any `json:"top_logprobs"`
|
||||
}
|
||||
|
||||
func NewDSChatReq(cb ChatBody) DSChatReq {
|
||||
return DSChatReq{
|
||||
Messages: cb.Messages,
|
||||
Model: cb.Model,
|
||||
Stream: cb.Stream,
|
||||
MaxTokens: 2048,
|
||||
PresencePenalty: 0,
|
||||
FrequencyPenalty: 0,
|
||||
Temperature: 1.0,
|
||||
TopP: 1.0,
|
||||
}
|
||||
}
|
||||
|
||||
type DSCompletionReq struct {
|
||||
Model string `json:"model"`
|
||||
Prompt string `json:"prompt"`
|
||||
Echo bool `json:"echo"`
|
||||
FrequencyPenalty int `json:"frequency_penalty"`
|
||||
// Logprobs int `json:"logprobs"`
|
||||
MaxTokens int `json:"max_tokens"`
|
||||
PresencePenalty int `json:"presence_penalty"`
|
||||
Stop any `json:"stop"`
|
||||
Stream bool `json:"stream"`
|
||||
StreamOptions any `json:"stream_options"`
|
||||
Suffix any `json:"suffix"`
|
||||
Temperature float32 `json:"temperature"`
|
||||
TopP float32 `json:"top_p"`
|
||||
}
|
||||
|
||||
func NewDSCompletionReq(prompt, model string, temp float32, stopSlice []string) DSCompletionReq {
|
||||
return DSCompletionReq{
|
||||
Model: model,
|
||||
Prompt: prompt,
|
||||
Temperature: temp,
|
||||
Stream: true,
|
||||
Echo: false,
|
||||
MaxTokens: 2048,
|
||||
PresencePenalty: 0,
|
||||
FrequencyPenalty: 0,
|
||||
TopP: 1.0,
|
||||
Stop: stopSlice,
|
||||
}
|
||||
}
|
||||
|
||||
type DSCompletionResp struct {
|
||||
ID string `json:"id"`
|
||||
Choices []struct {
|
||||
FinishReason string `json:"finish_reason"`
|
||||
Index int `json:"index"`
|
||||
Logprobs struct {
|
||||
TextOffset []int `json:"text_offset"`
|
||||
TokenLogprobs []int `json:"token_logprobs"`
|
||||
Tokens []string `json:"tokens"`
|
||||
TopLogprobs []struct {
|
||||
} `json:"top_logprobs"`
|
||||
} `json:"logprobs"`
|
||||
Text string `json:"text"`
|
||||
} `json:"choices"`
|
||||
Created int `json:"created"`
|
||||
Model string `json:"model"`
|
||||
SystemFingerprint string `json:"system_fingerprint"`
|
||||
Object string `json:"object"`
|
||||
Usage struct {
|
||||
CompletionTokens int `json:"completion_tokens"`
|
||||
PromptTokens int `json:"prompt_tokens"`
|
||||
PromptCacheHitTokens int `json:"prompt_cache_hit_tokens"`
|
||||
PromptCacheMissTokens int `json:"prompt_cache_miss_tokens"`
|
||||
TotalTokens int `json:"total_tokens"`
|
||||
CompletionTokensDetails struct {
|
||||
ReasoningTokens int `json:"reasoning_tokens"`
|
||||
} `json:"completion_tokens_details"`
|
||||
} `json:"usage"`
|
||||
}
|
||||
|
||||
type DSChatResp struct {
|
||||
Choices []struct {
|
||||
Delta struct {
|
||||
Content string `json:"content"`
|
||||
Role any `json:"role"`
|
||||
} `json:"delta"`
|
||||
FinishReason string `json:"finish_reason"`
|
||||
Index int `json:"index"`
|
||||
Logprobs any `json:"logprobs"`
|
||||
} `json:"choices"`
|
||||
Created int `json:"created"`
|
||||
ID string `json:"id"`
|
||||
Model string `json:"model"`
|
||||
Object string `json:"object"`
|
||||
SystemFingerprint string `json:"system_fingerprint"`
|
||||
Usage struct {
|
||||
CompletionTokens int `json:"completion_tokens"`
|
||||
PromptTokens int `json:"prompt_tokens"`
|
||||
TotalTokens int `json:"total_tokens"`
|
||||
} `json:"usage"`
|
||||
}
|
||||
|
||||
type DSChatStreamResp struct {
|
||||
ID string `json:"id"`
|
||||
Object string `json:"object"`
|
||||
Created int `json:"created"`
|
||||
Model string `json:"model"`
|
||||
SystemFingerprint string `json:"system_fingerprint"`
|
||||
Choices []struct {
|
||||
Index int `json:"index"`
|
||||
Delta struct {
|
||||
Content string `json:"content"`
|
||||
ReasoningContent string `json:"reasoning_content"`
|
||||
} `json:"delta"`
|
||||
Logprobs any `json:"logprobs"`
|
||||
FinishReason string `json:"finish_reason"`
|
||||
} `json:"choices"`
|
||||
}
|
||||
|
||||
type DSBalance struct {
|
||||
IsAvailable bool `json:"is_available"`
|
||||
BalanceInfos []struct {
|
||||
Currency string `json:"currency"`
|
||||
TotalBalance string `json:"total_balance"`
|
||||
GrantedBalance string `json:"granted_balance"`
|
||||
ToppedUpBalance string `json:"topped_up_balance"`
|
||||
} `json:"balance_infos"`
|
||||
}
|
||||
Reference in New Issue
Block a user