Help us shape the future of Go! Take the 2026 Go Developer Survey

domain

package
v2.14.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 7, 2026 License: AGPL-3.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

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      `` /* 203-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 CheckModelResp struct {
	Error   string `json:"error"`
	Content string `json:"content"`
}

type EmbedderExt added in v2.9.0

type EmbedderExt interface {
	EmbedStringsExt(ctx context.Context, texts []string, opts ...embedding.Option) (*EmbeddingsResponse, error)
}

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 IModelProvider[T any] interface {
	ListModel(subType string, provider string) ([]T, error)
}

type ModelKit

type ModelKit interface {
}

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,值越大输出越随机,可选,默认0.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 RerankRequest struct {
	N               *int     `json:"n,omitempty"`
	Documents       []string `json:"documents"`
	Query           string   `json:"query"`
	ReturnDocuments bool     `json:"return_documents"`
}

type RerankResponse added in v2.9.0

type RerankResponse struct {
	Results []Result `json:"results"`
	Usage   *Usage   `json:"usage,omitempty"`
}

type Reranker added in v2.9.0

type Reranker interface {
	Rerank(ctx context.Context, req RerankRequest) (RerankResponse, error)
}

type Response

type Response struct {
	Message string `json:"message"`
	Success bool   `json:"success"`
	Data    any    `json:"data,omitempty"`
}

type Result added in v2.9.0

type Result struct {
	Index          int     `json:"index"`
	RelevanceScore float64 `json:"relevance_score"`
	Document       string  `json:"document,omitempty"`
}

type SparseEmbedding added in v2.9.0

type SparseEmbedding struct {
	Index int     `json:"index"`
	Value float64 `json:"value"`
	Token string  `json:"token"`
}

type Usage added in v2.9.0

type Usage struct {
	PromptTokens int `json:"prompt_tokens"`
	TotalTokens  int `json:"total_tokens"`
	InputTokens  int `json:"input_tokens"`
	OutputTokens int `json:"output_tokens"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL