Documentation
¶
Index ¶
- Variables
- type CheckModelReq
- type CheckModelResp
- type EmbedderExt
- type EmbedderParam
- type EmbeddingItem
- type EmbeddingUsage
- type EmbeddingsResponse
- type GPUStackListModelResp
- type GithubModel
- type GithubResp
- type IModelProvider
- type ModelKit
- type ModelListItem
- type ModelListReq
- type ModelListResp
- type ModelMetadata
- type ModelParam
- type ModelProvider
- type ModelResponseParser
- type OpenAIData
- type OpenAIResp
- type RerankRequest
- type RerankResponse
- type Reranker
- type Response
- type Result
- type SparseEmbedding
- type Usage
Constants ¶
This section is empty.
Variables ¶
View Source
var ModelProviders map[consts.ModelProvider]ModelProvider
View Source
var Models []ModelMetadata
View Source
var TypeModelMap map[consts.ModelType][]ModelMetadata
Functions ¶
This section is empty.
Types ¶
type CheckModelReq ¶
type CheckModelReq struct {
Provider string `` /* 181-byte string literal not displayed */
Model string `json:"model" query:"model_name" validate:"required"`
BaseURL string `json:"base_url" query:"base_url" validate:"required"`
APIKey string `json:"api_key" query:"api_key"`
APIHeader string `json:"api_header" query:"api_header"`
APIVersion string `json:"api_version" query:"api_version"` // for azure openai
Type string `json:"type" query:"model_type" validate:"required,oneof=chat embedding rerank llm"`
Param *ModelParam `json:"param" query:"param"`
}
type CheckModelResp ¶
type EmbedderExt ¶ added in v2.9.0
type EmbedderParam ¶ added in v2.9.0
type EmbedderParam struct {
// 向量维度,可选:2048(仅v4)、1536(仅v4)、1024、768、512、256、128、64
Dimension *int `json:"dimension"`
// 文本类型,检索任务建议区分:query 与 document,默认 document
TextType *string `json:"text_type"`
// 输出类型,仅 v3/v4 支持:dense、sparse、dense&sparse,默认 dense
OutputType *string `json:"output_type"`
// 输出编码格式,默认 float
EncodingFormat *string `json:"encoding_format"`
// 检索指令,仅在 text-embedding-v4 且 TextType=query 时生效
Instruct *string `json:"instruct"`
}
type EmbeddingItem ¶ added in v2.9.0
type EmbeddingItem struct {
SparseEmbedding []SparseEmbedding `json:"sparse_embedding,omitempty"`
Embedding []float64 `json:"embedding,omitempty"`
TextIndex int `json:"text_index"`
}
type EmbeddingUsage ¶ added in v2.9.0
type EmbeddingUsage struct {
TotalTokens int `json:"total_tokens"`
}
type EmbeddingsResponse ¶ added in v2.9.0
type EmbeddingsResponse struct {
Embeddings []EmbeddingItem `json:"embeddings"`
Usage EmbeddingUsage `json:"usage"`
}
type GPUStackListModelResp ¶ added in v2.3.0
type GPUStackListModelResp struct {
Items []*struct {
Name string `json:"name"`
} `json:"items"`
}
func (*GPUStackListModelResp) ParseModels ¶ added in v2.3.0
func (o *GPUStackListModelResp) ParseModels() []ModelListItem
ParseModels 实现ModelResponseParser接口
type GithubModel ¶
type GithubModel struct {
ID string `json:"id"`
Name string `json:"name"`
Registry string `json:"registry"`
Publisher string `json:"publisher"`
Summary string `json:"summary"`
RateLimitTier string `json:"rate_limit_tier"`
HTMLURL string `json:"html_url"`
Version string `json:"version"`
Capabilities []string `json:"capabilities"`
Limits struct {
MaxInputTokens int `json:"max_input_tokens"`
MaxOutputTokens int `json:"max_output_tokens"`
} `json:"limits"`
Tags []string `json:"tags"`
SupportedInputModalities []string `json:"supported_input_modalities"`
SupportedOutputModalities []string `json:"supported_output_modalities"`
}
type GithubResp ¶
type GithubResp []GithubModel
func (*GithubResp) ParseModels ¶
func (g *GithubResp) ParseModels() []ModelListItem
ParseModels 实现ModelResponseParser接口
type IModelProvider ¶
type ModelListItem ¶
type ModelListItem struct {
Model string `json:"model"`
}
func From ¶
func From(ModelProvider ModelProvider) []ModelListItem
type ModelListReq ¶
type ModelListReq struct {
Provider string `json:"provider" query:"provider" validate:"required"`
BaseURL string `json:"base_url" query:"base_url" validate:"required"`
APIKey string `json:"api_key" query:"api_key"`
APIHeader string `json:"api_header" query:"api_header"`
Type string `json:"type" query:"type" validate:"required"`
}
type ModelListResp ¶
type ModelListResp struct {
Models []ModelListItem `json:"models"`
Error string `json:"error"`
}
type ModelMetadata ¶
type ModelMetadata struct {
// 基础参数
ModelName string `json:"id"` // 模型的名字
Object string `json:"object"` // 总是model
Created int `json:"created"` // 创建时间
Provider consts.ModelProvider `json:"provider"` // 提供商
ModelType consts.ModelType `json:"model_type"` // 模型类型
// api 调用相关参数
BaseURL string `json:"base_url"`
APIKey string `json:"api_key"`
APIHeader string `json:"api_header"`
APIVersion string `json:"api_version"` // for azure openai
// 高级参数
// 限制生成的最大token数量,可选,默认为模型最大值, Ollama不支持
MaxTokens *int `json:"max_tokens"`
// 采样温度参数,建议与TopP二选一,范围0-2,值越大输出越随机,可选,默认1.0
Temperature *float32 `json:"temperature"`
// 控制采样多样性,建议与Temperature二选一,范围0-1,值越小输出越聚焦,可选,默认1.0
TopP *float32 `json:"top_p"`
// API停止生成的序列标记,可选,例如:[]string{"\n", "User:"}
Stop []string `json:"stop"`
// 基于存在惩罚重复,范围-2到2,正值增加新主题可能性,可选,默认0, Gemini不支持
PresencePenalty *float32 `json:"presence_penalty"`
// 指定模型响应的格式,可选,用于结构化输出, DS,Gemini,Ollama不支持
ResponseFormat *openai.ChatCompletionResponseFormat `json:"response_format"`
// 启用确定性采样以获得一致输出,可选,用于可重现结果, DS,Gemini不支持
Seed *int `json:"seed"`
// 基于频率惩罚重复,范围-2到2,正值降低重复可能性,可选,默认0, Gemini不支持
FrequencyPenalty *float32 `json:"frequency_penalty"`
// 修改特定token在补全中出现的可能性,可选,token ID到偏置值(-100到100)的映射, DS,Gemini,Ollama不支持
LogitBias map[string]int `json:"logit_bias"`
// Embeddng高级参数
EmbedderParam EmbedderParam `json:"embedder_param"`
}
type ModelParam ¶ added in v2.5.0
type ModelParam struct {
ContextWindow int `json:"context_window"`
MaxTokens int `json:"max_tokens"`
R1Enabled bool `json:"r1_enabled"`
SupportComputerUse bool `json:"support_computer_use"`
SupportImages bool `json:"support_images"`
SupportPromptCache bool `json:"support_prompt_cache"`
Temperature *float32 `json:"temperature"`
}
type ModelProvider ¶
type ModelProvider struct {
OwnerName consts.ModelProvider `json:"owner_name"` // 提供商
APIBase string `json:"api_base"` // 接口地址 如:https://api.qwen.com
APIKey string `json:"api_key"` // 接口密钥 如:sk-xxxx
APIVersion string `json:"api_version"` // 接口版本 如:2023-05-15
APIHeader string `json:"api_header"` // 接口头 如:Authorization: Bearer sk-xxxx
Models []ModelMetadata `json:"models"` // 模型列表
}
type ModelResponseParser ¶
type ModelResponseParser interface {
ParseModels() []ModelListItem
}
ModelResponseParser 定义模型响应解析器接口
type OpenAIData ¶
type OpenAIData struct {
ID string `json:"id"`
}
type OpenAIResp ¶
type OpenAIResp struct {
Object string `json:"object"`
Data []*OpenAIData `json:"data"`
}
func (*OpenAIResp) ParseModels ¶
func (o *OpenAIResp) ParseModels() []ModelListItem
ParseModels 实现ModelResponseParser接口
type RerankRequest ¶ added in v2.9.0
type RerankResponse ¶ added in v2.9.0
type Reranker ¶ added in v2.9.0
type Reranker interface {
Rerank(ctx context.Context, req RerankRequest) (RerankResponse, error)
}
type SparseEmbedding ¶ added in v2.9.0
Click to show internal directories.
Click to hide internal directories.