mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-09-29 14:46:38 +08:00
51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
package providers
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
type AliAIProvider struct {
|
|
ProviderConfig
|
|
}
|
|
|
|
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"`
|
|
}
|
|
|
|
// 创建 AliAIProvider
|
|
// https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
|
|
func CreateAliAIProvider(c *gin.Context) *AliAIProvider {
|
|
return &AliAIProvider{
|
|
ProviderConfig: ProviderConfig{
|
|
BaseURL: "https://dashscope.aliyuncs.com",
|
|
ChatCompletions: "/api/v1/services/aigc/text-generation/generation",
|
|
Embeddings: "/api/v1/services/embeddings/text-embedding/text-embedding",
|
|
Context: c,
|
|
},
|
|
}
|
|
}
|
|
|
|
// 获取请求头
|
|
func (p *AliAIProvider) GetRequestHeaders() (headers map[string]string) {
|
|
headers = make(map[string]string)
|
|
headers["Authorization"] = fmt.Sprintf("Bearer %s", p.Context.GetString("api_key"))
|
|
|
|
headers["Content-Type"] = p.Context.Request.Header.Get("Content-Type")
|
|
headers["Accept"] = p.Context.Request.Header.Get("Accept")
|
|
if headers["Content-Type"] == "" {
|
|
headers["Content-Type"] = "application/json"
|
|
}
|
|
|
|
return headers
|
|
}
|