diff --git a/docs/Chat.md b/docs/Chat.md index 41b9ec1..cb7b2d6 100644 --- a/docs/Chat.md +++ b/docs/Chat.md @@ -14,6 +14,7 @@ import ( "github.com/chaitin/ModelKit/v2/consts" "github.com/chaitin/ModelKit/v2/domain" "github.com/chaitin/ModelKit/v2/usecase" + "github.com/cloudwego/eino/schema" ) func main() { diff --git a/docs/Embedding.md b/docs/Embedding.md index 612dc44..47bca60 100644 --- a/docs/Embedding.md +++ b/docs/Embedding.md @@ -73,6 +73,39 @@ texts := []string{"示例文本一", "示例文本二"} res, _ := mk.UseEmbedder(ctx, embedder, texts) ``` +## 返回结构(EmbeddingsResponse) + +- 结果类型为 `EmbeddingsResponse`: + +```go +type SparseEmbedding struct { + Index int `json:"index"` + Value float64 `json:"value"` + Token string `json:"token"` +} + +type EmbeddingItem struct { + SparseEmbedding []SparseEmbedding `json:"sparse_embedding,omitempty"` + Embedding []float64 `json:"embedding,omitempty"` + TextIndex int `json:"text_index"` +} + +type EmbeddingUsage struct { + TotalTokens int `json:"total_tokens"` +} + +type EmbeddingsResponse struct { + Embeddings []EmbeddingItem `json:"embeddings"` + Usage EmbeddingUsage `json:"usage"` +} +``` +- 字段说明: + - `embeddings`:`EmbeddingItem[]`,每个元素对应一条输入文本。 + - `text_index`:输入文本在 `texts` 中的下标。 + - `embedding`:稠密向量 `[]float64`(当 `output_type` 包含 `dense` 时返回)。 + - `sparse_embedding`:稀疏向量 `[{index,value,token}]`(当 `output_type` 为 `sparse` 或 `dense&sparse` 时返回)。 + - `usage`:调用统计信息,当前包含 `total_tokens`。 + ## 生成稠密向量 ```go @@ -129,7 +162,8 @@ res, _ := mk.UseEmbedder(ctx, embedder, texts) 使用条件 -- 仅 `text-embedding-v3`/`text-embedding-v4` 支持设置 `output_type` 生成稀疏向量 +- 仅 `text-embedding-v3`/`text-embedding-v4` 支持设置 `output_type` 生成稀疏向量 +- 仅使用DashScope API支持生成稀疏向量, 请将base_url设置为`https://dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding#` - 将 `output_type` 设为 `sparse` 或 `dense&sparse` 才会返回 `sparse_embedding` - `text_type` 设 `query` , 同时设置 `instruct` 时 无法生成稀疏向量 diff --git a/docs/Rerank.md b/docs/Rerank.md index ae203ba..2800304 100644 --- a/docs/Rerank.md +++ b/docs/Rerank.md @@ -59,6 +59,32 @@ res, _ := rk.Rerank(ctx, domain.RerankRequest{ }) ``` +## 返回结构(RerankResponse) + +```go +type Result struct { + Index int `json:"index"` + RelevanceScore float64 `json:"relevance_score"` + Document string `json:"document,omitempty"` +} + +type Usage struct { + PromptTokens int `json:"prompt_tokens"` + TotalTokens int `json:"total_tokens"` + InputTokens int `json:"input_tokens"` + OutputTokens int `json:"output_tokens"` +} + +type RerankResponse struct { + Results []Result `json:"results"` + Usage *Usage `json:"usage,omitempty"` +} +``` + +字段说明: +- `results`:`Result[]`,按相关性从高到低的重排结果;包含原始 `index`、`relevance_score`,在 `return_documents=true` 时包含 `document` 文本。 +- `usage`:可选计费/令牌使用信息,包含 `prompt_tokens`、`input_tokens`、`output_tokens`、`total_tokens`。 + 示例结果: ```json