package canonical // CanonicalModel 规范模型 type CanonicalModel struct { ID string `json:"id"` Name string `json:"name,omitempty"` Created int64 `json:"created,omitempty"` OwnedBy string `json:"owned_by,omitempty"` } // CanonicalModelList 规范模型列表 type CanonicalModelList struct { Models []CanonicalModel `json:"models"` } // CanonicalModelInfo 规范模型详情 type CanonicalModelInfo struct { ID string `json:"id"` Name string `json:"name,omitempty"` Created int64 `json:"created,omitempty"` OwnedBy string `json:"owned_by,omitempty"` } // CanonicalEmbeddingRequest 规范嵌入请求 type CanonicalEmbeddingRequest struct { Model string `json:"model"` Input any `json:"input"` // string 或 []string EncodingFormat string `json:"encoding_format,omitempty"` Dimensions *int `json:"dimensions,omitempty"` } // CanonicalEmbeddingResponse 规范嵌入响应 type CanonicalEmbeddingResponse struct { Data []EmbeddingData `json:"data"` Model string `json:"model"` Usage EmbeddingUsage `json:"usage"` } // EmbeddingData 嵌入数据项 type EmbeddingData struct { Index int `json:"index"` Embedding any `json:"embedding"` // 根据格式不同可能是 []float64 或 base64 字符串 } // EmbeddingUsage 嵌入用量 type EmbeddingUsage struct { PromptTokens int `json:"prompt_tokens"` TotalTokens int `json:"total_tokens"` } // CanonicalRerankRequest 规范重排序请求 type CanonicalRerankRequest struct { Model string `json:"model"` Query string `json:"query"` Documents []string `json:"documents"` TopN *int `json:"top_n,omitempty"` ReturnDocuments *bool `json:"return_documents,omitempty"` } // CanonicalRerankResponse 规范重排序响应 type CanonicalRerankResponse struct { Results []RerankResult `json:"results"` Model string `json:"model"` } // RerankResult 重排序结果项 type RerankResult struct { Index int `json:"index"` RelevanceScore float64 `json:"relevance_score"` Document *string `json:"document,omitempty"` }