docs: 添加 Eino 框架参考文档
This commit is contained in:
67
docs/Eino/docs/ecosystem_integration/_index.md
Normal file
67
docs/Eino/docs/ecosystem_integration/_index.md
Normal file
@@ -0,0 +1,67 @@
|
||||
---
|
||||
Description: ""
|
||||
date: "2026-01-20"
|
||||
lastmod: ""
|
||||
tags: []
|
||||
title: 组件集成
|
||||
weight: 6
|
||||
---
|
||||
|
||||
## 组件集成
|
||||
|
||||
### ChatModel
|
||||
|
||||
- openai: [ChatModel - OpenAI](https://github.com/cloudwego/eino-ext/blob/main/components/model/openai/README.md)
|
||||
- ark: [ChatModel - ARK](https://github.com/cloudwego/eino-ext/blob/main/components/model/ark/README.md)
|
||||
- ollama: [ChatModel - Ollama](https://github.com/cloudwego/eino-ext/blob/main/components/model/ollama/README.md)
|
||||
|
||||
### Document
|
||||
|
||||
#### Loader
|
||||
|
||||
- file: [Loader - local file](/zh/docs/eino/ecosystem_integration/document/loader_local_file)
|
||||
- s3: [Loader - amazon s3](/zh/docs/eino/ecosystem_integration/document/loader_amazon_s3)
|
||||
- web url: [Loader - web url](/zh/docs/eino/ecosystem_integration/document/loader_web_url)
|
||||
|
||||
#### Parser
|
||||
|
||||
- html: [Parser - html](/zh/docs/eino/ecosystem_integration/document/parser_html)
|
||||
- pdf: [Parser - pdf](/zh/docs/eino/ecosystem_integration/document/parser_pdf)
|
||||
|
||||
#### Transformer
|
||||
|
||||
- markdown splitter: [Splitter - markdown](/zh/docs/eino/ecosystem_integration/document/splitter_markdown)
|
||||
- recursive splitter: [Splitter - recursive](/zh/docs/eino/ecosystem_integration/document/splitter_recursive)
|
||||
- semantic splitter: [Splitter - semantic](/zh/docs/eino/ecosystem_integration/document/splitter_semantic)
|
||||
|
||||
### Embedding
|
||||
|
||||
- ark: [Embedding - ARK](/zh/docs/eino/ecosystem_integration/embedding/embedding_ark)
|
||||
- openai: [Embedding - OpenAI](/zh/docs/eino/ecosystem_integration/embedding/embedding_openai)
|
||||
|
||||
### Indexer
|
||||
|
||||
- volc vikingdb: [Indexer - volc VikingDB](/zh/docs/eino/ecosystem_integration/indexer/indexer_volc_vikingdb)
|
||||
- Milvus 2.5+: [Indexer - Milvus 2 (v2.5+)](/zh/docs/eino/ecosystem_integration/indexer/indexer_milvusv2)
|
||||
- Milvus 2.4: [Indexer - Milvus](/zh/docs/eino/ecosystem_integration/indexer/indexer_milvus)
|
||||
- OpenSearch 3: [Indexer - OpenSearch 3](/zh/docs/eino/ecosystem_integration/indexer/indexer_opensearch3)
|
||||
- OpenSearch 2: [Indexer - OpenSearch 2](/zh/docs/eino/ecosystem_integration/indexer/indexer_opensearch2)
|
||||
- ElasticSearch 9: [Indexer - Elasticsearch 9](/zh/docs/eino/ecosystem_integration/indexer/indexer_elasticsearch9)
|
||||
- Elasticsearch 8: [Indexer - ES8](/zh/docs/eino/ecosystem_integration/indexer/indexer_es8)
|
||||
- ElasticSearch 7: [Indexer - Elasticsearch 7 ](/zh/docs/eino/ecosystem_integration/indexer/indexer_elasticsearch7)
|
||||
|
||||
### Retriever
|
||||
|
||||
- volc vikingdb: [Retriever - volc VikingDB](/zh/docs/eino/ecosystem_integration/retriever/retriever_volc_vikingdb)
|
||||
- Milvus 2.5+: [Retriever - Milvus 2 (v2.5+) ](/zh/docs/eino/ecosystem_integration/retriever/retriever_milvusv2)
|
||||
- Milvus 2.4: [Retriever - Milvus](/zh/docs/eino/ecosystem_integration/retriever/retriever_milvus)
|
||||
- OpenSearch 3: [Retriever - OpenSearch 3](/zh/docs/eino/ecosystem_integration/retriever/retriever_opensearch3)
|
||||
- OpenSearch 2: [Retriever - OpenSearch 2](/zh/docs/eino/ecosystem_integration/retriever/retriever_opensearch2)
|
||||
- ElasticSearch 9: [Retriever - Elasticsearch 9](/zh/docs/eino/ecosystem_integration/retriever/retriever_elasticsearch9)
|
||||
- ElasticSearch 8: [Retriever - ES8](/zh/docs/eino/ecosystem_integration/retriever/retriever_es8)
|
||||
- ElasticSearch 7: [Retriever - ES 7](/zh/docs/eino/ecosystem_integration/retriever/retriever_elasticsearch7)
|
||||
|
||||
### Tools
|
||||
|
||||
- googlesearch: [Tool - Googlesearch](/zh/docs/eino/ecosystem_integration/tool/tool_googlesearch)
|
||||
- duckduckgo search: [Tool - DuckDuckGoSearch](/zh/docs/eino/ecosystem_integration/tool/tool_duckduckgo_search)
|
||||
26
docs/Eino/docs/ecosystem_integration/callbacks/_index.md
Normal file
26
docs/Eino/docs/ecosystem_integration/callbacks/_index.md
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
Description: ""
|
||||
date: "2026-03-02"
|
||||
lastmod: ""
|
||||
tags: []
|
||||
title: Callbacks
|
||||
weight: 5
|
||||
---
|
||||
|
||||
# Callbacks 组件列表
|
||||
|
||||
本分类的各组件详细文档请参考 GitHub README:
|
||||
|
||||
<table>
|
||||
<tr><td>组件名称</td><td>中文文档</td><td>English Docs</td></tr>
|
||||
<tr><td>APMPlus</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/callbacks/apmplus/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/callbacks/apmplus/README.md">README.md</a></td></tr>
|
||||
<tr><td>CozeLoop</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/callbacks/cozeloop/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/callbacks/cozeloop/README.md">README.md</a></td></tr>
|
||||
</table>
|
||||
|
||||
---
|
||||
|
||||
**说明**:
|
||||
|
||||
- 上述链接直接指向 GitHub 仓库的最新文档
|
||||
- 中文文档和英文文档内容同步更新
|
||||
- 如需查看历史版本或提交文档修改建议,请访问 GitHub 仓库
|
||||
33
docs/Eino/docs/ecosystem_integration/chat_model/_index.md
Normal file
33
docs/Eino/docs/ecosystem_integration/chat_model/_index.md
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
Description: ""
|
||||
date: "2026-03-02"
|
||||
lastmod: ""
|
||||
tags: []
|
||||
title: ChatModel
|
||||
weight: 1
|
||||
---
|
||||
|
||||
# ChatModel 组件列表
|
||||
|
||||
本分类的各组件详细文档请参考 GitHub README:
|
||||
|
||||
<table>
|
||||
<tr><td>组件名称</td><td>中文文档</td><td>English Docs</td></tr>
|
||||
<tr><td>ARK</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/ark/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/ark/README.md">README.md</a></td></tr>
|
||||
<tr><td>ARKBot</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/arkbot/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/arkbot/README.md">README.md</a></td></tr>
|
||||
<tr><td>Claude</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/claude/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/claude/README.md">README.md</a></td></tr>
|
||||
<tr><td>DeepSeek</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/deepseek/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/deepseek/README.md">README.md</a></td></tr>
|
||||
<tr><td>Gemini</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/gemini/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/gemini/README.md">README.md</a></td></tr>
|
||||
<tr><td>Ollama</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/ollama/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/ollama/README.md">README.md</a></td></tr>
|
||||
<tr><td>OpenAI</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/openai/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/openai/README.md">README.md</a></td></tr>
|
||||
<tr><td>Qianfan</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/qianfan/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/qianfan/README.md">README.md</a></td></tr>
|
||||
<tr><td>Qwen</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/qwen/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/model/qwen/README.md">README.md</a></td></tr>
|
||||
</table>
|
||||
|
||||
---
|
||||
|
||||
**说明**:
|
||||
|
||||
- 上述链接直接指向 GitHub 仓库的最新文档
|
||||
- 中文文档和英文文档内容同步更新
|
||||
- 如需查看历史版本或提交文档修改建议,请访问 GitHub 仓库
|
||||
@@ -0,0 +1,440 @@
|
||||
---
|
||||
Description: ""
|
||||
date: "2026-03-02"
|
||||
lastmod: ""
|
||||
tags: []
|
||||
title: ARK
|
||||
weight: 2
|
||||
---
|
||||
|
||||
基于 [Eino](https://github.com/cloudwego/eino) 的火山引擎 Ark 模型实现,实现了 `AgenticModel` 组件接口。这使得该模型能够无缝集成到 Eino 的 Agent 能力中,提供增强的自然语言处理和生成功能。
|
||||
|
||||
> 💡
|
||||
> 本组件在 alpha/09 版本引入
|
||||
|
||||
## 功能特性
|
||||
|
||||
- 实现了 `github.com/cloudwego/eino/components/model.AgenticModel` 接口
|
||||
- 易于集成到 Eino 的 agent 系统中
|
||||
- 可配置的模型参数
|
||||
- 支持 Responses API
|
||||
- 支持流式响应 (Streaming)
|
||||
- 支持工具调用 (Tools),包括函数工具 (Function Tools)、MCP 工具 (MCP Tools) 和服务器工具 (Server Tools)
|
||||
- 支持前缀缓存 (Prefix Cache) 和会话缓存 (Session Cache)
|
||||
|
||||
## 安装
|
||||
|
||||
```bash
|
||||
go get github.com/cloudwego/eino-ext/components/model/agenticark@latest
|
||||
```
|
||||
|
||||
## 快速开始
|
||||
|
||||
以下是如何使用 `AgenticModel` 的一个快速示例:
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/bytedance/sonic"
|
||||
"github.com/cloudwego/eino-ext/components/model/agenticark"
|
||||
"github.com/cloudwego/eino/schema"
|
||||
)
|
||||
|
||||
func main() {
|
||||
ctx := context.Background()
|
||||
|
||||
// 获取 ARK_API_KEY 和 ARK_MODEL_ID: https://www.volcengine.com/docs/82379/1399008
|
||||
am, err := agenticark.New(ctx, &agenticark.Config{
|
||||
Model: os.Getenv("ARK_MODEL_ID"),
|
||||
APIKey: os.Getenv("ARK_API_KEY"),
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("failed to create agentic model, err: %v", err)
|
||||
}
|
||||
|
||||
input := []*schema.AgenticMessage{
|
||||
schema.UserAgenticMessage("what is the weather like in Beijing"),
|
||||
}
|
||||
|
||||
msg, err := am.Generate(ctx, input)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to generate, err: %v", err)
|
||||
}
|
||||
|
||||
meta := msg.ResponseMeta.Extension.(*agenticark.ResponseMetaExtension)
|
||||
|
||||
log.Printf("request_id: %s
|
||||
", meta.ID)
|
||||
respBody, _ := sonic.MarshalIndent(msg, " ", " ")
|
||||
log.Printf(" body: %s
|
||||
", string(respBody))
|
||||
}
|
||||
```
|
||||
|
||||
## 配置
|
||||
|
||||
可以使用 `agenticark.Config` 结构体配置 `AgenticModel`:
|
||||
|
||||
```go
|
||||
type Config struct {
|
||||
// Timeout 指定等待 API 响应的最大持续时间
|
||||
// 如果设置了 HTTPClient,则不会使用 Timeout。
|
||||
// 可选。默认值:10 分钟
|
||||
Timeout *time.Duration
|
||||
|
||||
// HTTPClient 指定用于发送 HTTP 请求的客户端。
|
||||
// 如果设置了 HTTPClient,则不会使用 Timeout。
|
||||
// 可选。默认值 &http.Client{Timeout: Timeout}
|
||||
HTTPClient *http.Client
|
||||
|
||||
// RetryTimes 指定失败 API 调用的重试次数
|
||||
// 可选。默认值:2
|
||||
RetryTimes *int
|
||||
|
||||
// BaseURL 指定 Ark 服务的基准 URL
|
||||
// 可选。默认值:"https://agenticark.cn-beijing.volces.com/api/v3"
|
||||
BaseURL string
|
||||
|
||||
// Region 指定 Ark 服务所在的区域
|
||||
// 可选。默认值:"cn-beijing"
|
||||
Region string
|
||||
|
||||
// 以下三个字段与认证有关 - 需要 APIKey 或 AccessKey/SecretKey 对之一
|
||||
// 有关认证的详细信息,请参阅:https://www.volcengine.com/docs/82379/1298459
|
||||
// 如果同时提供,APIKey 优先
|
||||
APIKey string
|
||||
|
||||
AccessKey string
|
||||
|
||||
SecretKey string
|
||||
|
||||
// 以下字段对应于 Ark 的 responses API 参数
|
||||
// 参考:https://www.volcengine.com/docs/82379/1298454
|
||||
|
||||
// Model 指定 ark 平台上的端点 ID
|
||||
// 必填
|
||||
Model string
|
||||
|
||||
// MaxTokens 指定响应中要生成的最大令牌数。
|
||||
// 可选。
|
||||
MaxTokens *int
|
||||
|
||||
// Temperature 指定要使用的采样温度
|
||||
// 通常建议修改此项或 TopP,但不能同时修改
|
||||
// 范围:0.0 到 1.0。值越高,输出越随机
|
||||
// 可选。默认值:1.0
|
||||
Temperature *float64
|
||||
|
||||
// TopP 通过核心采样控制多样性
|
||||
// 通常建议修改此项或 Temperature,但不能同时修改
|
||||
// 范围:0.0 到 1.0。值越低,输出越集中
|
||||
// 可选。默认值:0.7
|
||||
TopP *float64
|
||||
|
||||
// Stop 序列,API 将在这些序列处停止生成更多 token
|
||||
// 可选。示例:[]string{"
|
||||
", "User:"}
|
||||
Stop []string
|
||||
|
||||
// FrequencyPenalty 根据频率惩罚 token 以防止重复
|
||||
// 范围:-2.0 到 2.0。正值降低重复的可能性
|
||||
// 可选。默认值:0
|
||||
FrequencyPenalty *float64
|
||||
|
||||
// LogitBias 修改特定 token 在补全中出现的可能性
|
||||
// 可选。将 token ID 映射到 -100 到 100 的偏置值
|
||||
LogitBias map[string]int32
|
||||
|
||||
// PresencePenalty 根据存在与否惩罚 token 以防止重复
|
||||
// 范围:-2.0 到 2.0。正值增加新主题的可能性
|
||||
// 可选。默认值:0
|
||||
PresencePenalty *float64
|
||||
|
||||
// LogProbs 指定是否返回输出 token 的对数概率。
|
||||
LogProbs *bool
|
||||
|
||||
// TopLogProbs 指定每个 token 位置返回的最可能 token 的数量,每个都带有相关的对数概率。
|
||||
TopLogProbs *int
|
||||
|
||||
// RepetitionPenalty 基于 token 在目前为止的文本中的现有频率对其进行惩罚。
|
||||
// 范围:0.0 到 2.0。1.0 表示无惩罚。
|
||||
RepetitionPenalty *float64
|
||||
|
||||
// Thinking 控制模型是否设置为激活深度思考模式。
|
||||
// 默认设置为启用。
|
||||
Thinking *responses.ResponsesThinking
|
||||
|
||||
// Reasoning 指定模型的推理力度。
|
||||
// 可选。
|
||||
|
||||
// EnablePassBackReasoning 控制模型是否在下一次请求中传回推理项。
|
||||
// 注意 doubao 1.6 不支持传回推理项。
|
||||
// 可选. 默认值:true
|
||||
EnablePassBackReasoning *bool
|
||||
|
||||
// MaxToolCalls 限制聊天补全中生成的最大工具调用数。
|
||||
// 可选。
|
||||
MaxToolCalls *int64
|
||||
|
||||
// ParallelToolCalls 控制模型是否设置为执行并行工具调用。
|
||||
// 可选。
|
||||
ParallelToolCalls *bool
|
||||
|
||||
// ServerTools 指定模型可用的服务器端工具。
|
||||
// 可选。
|
||||
ServerTools []*ServerToolConfig
|
||||
|
||||
// MCPTools 指定模型可用的 MCP 工具。
|
||||
// 可选。
|
||||
MCPTools []*responses.ToolMcp
|
||||
|
||||
// Cache 指定模型的缓存配置。
|
||||
// 可选。
|
||||
Cache *CacheConfig
|
||||
|
||||
// CustomHeader 请求模型时传递的 http 标头
|
||||
CustomHeader map[string]string
|
||||
}
|
||||
```
|
||||
|
||||
## 高级用法
|
||||
|
||||
### 工具调用 (Tool Calling)
|
||||
|
||||
`AgenticModel` 支持工具调用,包括函数工具、MCP 工具和服务器工具。
|
||||
|
||||
#### 函数工具示例
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/bytedance/sonic"
|
||||
"github.com/cloudwego/eino-ext/components/model/agenticark"
|
||||
"github.com/cloudwego/eino/components/model"
|
||||
"github.com/cloudwego/eino/schema"
|
||||
"github.com/eino-contrib/jsonschema"
|
||||
"github.com/volcengine/volcengine-go-sdk/service/arkruntime/model/responses"
|
||||
"github.com/wk8/go-ordered-map/v2"
|
||||
)
|
||||
|
||||
func main() {
|
||||
ctx := context.Background()
|
||||
|
||||
// 获取 ARK_API_KEY 和 ARK_MODEL_ID: https://www.volcengine.com/docs/82379/1399008
|
||||
am, err := agenticark.New(ctx, &agenticark.Config{
|
||||
Model: os.Getenv("ARK_MODEL_ID"),
|
||||
APIKey: os.Getenv("ARK_API_KEY"),
|
||||
Thinking: &responses.ResponsesThinking{
|
||||
Type: responses.ThinkingType_disabled.Enum(),
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("failed to create agentic model, err=%v", err)
|
||||
}
|
||||
|
||||
functionTools := []*schema.ToolInfo{
|
||||
{
|
||||
Name: "get_weather",
|
||||
Desc: "get the weather in a city",
|
||||
ParamsOneOf: schema.NewParamsOneOfByJSONSchema(&jsonschema.Schema{
|
||||
Type: "object",
|
||||
Properties: orderedmap.New[string, *jsonschema.Schema](
|
||||
orderedmap.WithInitialData(
|
||||
orderedmap.Pair[string, *jsonschema.Schema]{
|
||||
Key: "city",
|
||||
Value: &jsonschema.Schema{
|
||||
Type: "string",
|
||||
Description: "the city to get the weather",
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
Required: []string{"city"},
|
||||
}),
|
||||
},
|
||||
}
|
||||
|
||||
allowedTools := []*schema.AllowedTool{
|
||||
{
|
||||
FunctionName: "get_weather",
|
||||
},
|
||||
}
|
||||
|
||||
opts := []model.Option{
|
||||
model.WithAgenticToolChoice(&schema.AgenticToolChoice{
|
||||
Type: schema.ToolChoiceForced,
|
||||
Forced: &schema.AgenticForcedToolChoice{
|
||||
Tools: allowedTools,
|
||||
},
|
||||
}),
|
||||
model.WithTools(functionTools),
|
||||
}
|
||||
|
||||
firstInput := []*schema.AgenticMessage{
|
||||
schema.UserAgenticMessage("what's the weather like in Beijing today"),
|
||||
}
|
||||
|
||||
sResp, err := am.Stream(ctx, firstInput, opts...)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to stream, err: %v", err)
|
||||
}
|
||||
|
||||
var msgs []*schema.AgenticMessage
|
||||
for {
|
||||
msg, err := sResp.Recv()
|
||||
if err != nil {
|
||||
if errors.Is(err, io.EOF) {
|
||||
break
|
||||
}
|
||||
log.Fatalf("failed to receive stream response, err: %v", err)
|
||||
}
|
||||
msgs = append(msgs, msg)
|
||||
}
|
||||
|
||||
concatenated, err := schema.ConcatAgenticMessages(msgs)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to concat agentic messages, err: %v", err)
|
||||
}
|
||||
|
||||
lastBlock := concatenated.ContentBlocks[len(concatenated.ContentBlocks)-1]
|
||||
|
||||
toolCall := lastBlock.FunctionToolCall
|
||||
toolResultMsg := schema.FunctionToolResultAgenticMessage(toolCall.CallID, toolCall.Name, "20 degrees")
|
||||
|
||||
secondInput := append(firstInput, concatenated, toolResultMsg)
|
||||
|
||||
gResp, err := am.Generate(ctx, secondInput)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to generate, err: %v", err)
|
||||
}
|
||||
|
||||
meta := concatenated.ResponseMeta.Extension.(*agenticark.ResponseMetaExtension)
|
||||
log.Printf("request_id: %s
|
||||
", meta.ID)
|
||||
|
||||
respBody, _ := sonic.MarshalIndent(gResp, " ", " ")
|
||||
log.Printf(" body: %s
|
||||
", string(respBody))
|
||||
}
|
||||
```
|
||||
|
||||
#### 服务器工具示例
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/bytedance/sonic"
|
||||
"github.com/cloudwego/eino-ext/components/model/agenticark"
|
||||
"github.com/cloudwego/eino/components/model"
|
||||
"github.com/cloudwego/eino/schema"
|
||||
"github.com/volcengine/volcengine-go-sdk/service/arkruntime/model/responses"
|
||||
)
|
||||
|
||||
func main() {
|
||||
ctx := context.Background()
|
||||
|
||||
// Get ARK_API_KEY and ARK_MODEL_ID: https://www.volcengine.com/docs/82379/1399008
|
||||
am, err := agenticark.New(ctx, &agenticark.Config{
|
||||
Model: os.Getenv("ARK_MODEL_ID"),
|
||||
APIKey: os.Getenv("ARK_API_KEY"),
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("failed to create agentic model, err=%v", err)
|
||||
}
|
||||
|
||||
serverTools := []*agenticark.ServerToolConfig{
|
||||
{
|
||||
WebSearch: &responses.ToolWebSearch{
|
||||
Type: responses.ToolType_web_search,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
allowedTools := []*schema.AllowedTool{
|
||||
{
|
||||
ServerTool: &schema.AllowedServerTool{
|
||||
Name: string(agenticark.ServerToolNameWebSearch),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
opts := []model.Option{
|
||||
agenticark.WithServerTools(serverTools),
|
||||
model.WithAgenticToolChoice(&schema.AgenticToolChoice{
|
||||
Type: schema.ToolChoiceForced,
|
||||
Forced: &schema.AgenticForcedToolChoice{
|
||||
Tools: allowedTools,
|
||||
},
|
||||
}),
|
||||
agenticark.WithThinking(&responses.ResponsesThinking{
|
||||
Type: responses.ThinkingType_disabled.Enum(),
|
||||
}),
|
||||
}
|
||||
|
||||
input := []*schema.AgenticMessage{
|
||||
schema.UserAgenticMessage("what's the weather like in Beijing today"),
|
||||
}
|
||||
|
||||
resp, err := am.Stream(ctx, input, opts...)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to stream, err: %v", err)
|
||||
}
|
||||
|
||||
var msgs []*schema.AgenticMessage
|
||||
for {
|
||||
msg, err := resp.Recv()
|
||||
if err != nil {
|
||||
if errors.Is(err, io.EOF) {
|
||||
break
|
||||
}
|
||||
log.Fatalf("failed to receive stream response, err: %v", err)
|
||||
}
|
||||
msgs = append(msgs, msg)
|
||||
}
|
||||
|
||||
concatenated, err := schema.ConcatAgenticMessages(msgs)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to concat agentic messages, err: %v", err)
|
||||
}
|
||||
|
||||
meta := concatenated.ResponseMeta.Extension.(*agenticark.ResponseMetaExtension)
|
||||
for _, block := range concatenated.ContentBlocks {
|
||||
if block.ServerToolCall == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
serverToolArgs := block.ServerToolCall.Arguments.(*agenticark.ServerToolCallArguments)
|
||||
|
||||
args, _ := sonic.MarshalIndent(serverToolArgs, " ", " ")
|
||||
log.Printf("server_tool_args: %s
|
||||
", string(args))
|
||||
}
|
||||
|
||||
log.Printf("request_id: %s
|
||||
", meta.ID)
|
||||
respBody, _ := sonic.MarshalIndent(concatenated, " ", " ")
|
||||
log.Printf(" body: %s
|
||||
", string(respBody))
|
||||
}
|
||||
```
|
||||
|
||||
更多示例请参考 `examples` 目录。
|
||||
@@ -0,0 +1,457 @@
|
||||
---
|
||||
Description: ""
|
||||
date: "2026-03-02"
|
||||
lastmod: ""
|
||||
tags: []
|
||||
title: OpenAI
|
||||
weight: 1
|
||||
---
|
||||
|
||||
基于 [Eino](https://github.com/cloudwego/eino) 的 OpenAI 模型实现,实现了 `AgenticModel` 组件接口。这使得该模型能够无缝集成到 Eino 的 Agent 能力中,提供增强的自然语言处理和生成功能。
|
||||
|
||||
> 💡
|
||||
> 本组件在 alpha/09 版本引入。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- 实现了 `github.com/cloudwego/eino/components/model.AgenticModel` 接口
|
||||
- 易于集成到 Eino 的 agent 系统中
|
||||
- 可配置的模型参数
|
||||
- 支持 Responses API
|
||||
- 支持流式响应 (Streaming)
|
||||
- 支持工具调用 (Tools),包括函数工具 (Function Tools)、MCP 工具 (MCP Tools) 和服务器工具 (Server Tools)
|
||||
- 支持 Azure OpenAI
|
||||
|
||||
## 安装
|
||||
|
||||
```bash
|
||||
go get github.com/cloudwego/eino-ext/components/model/agenticopenai@latest
|
||||
```
|
||||
|
||||
## 快速开始
|
||||
|
||||
以下是如何使用 `AgenticModel` 的一个快速示例:
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/bytedance/sonic"
|
||||
"github.com/cloudwego/eino-ext/components/model/agenticopenai"
|
||||
"github.com/cloudwego/eino/schema"
|
||||
openaischema "github.com/cloudwego/eino/schema/openai"
|
||||
"github.com/eino-contrib/jsonschema"
|
||||
"github.com/openai/openai-go/v3/responses"
|
||||
"github.com/wk8/go-ordered-map/v2"
|
||||
)
|
||||
|
||||
func main() {
|
||||
ctx := context.Background()
|
||||
|
||||
am, err := agenticopenai.New(ctx, &agenticopenai.Config{
|
||||
BaseURL: "https://api.agenticopenai.com/v1",
|
||||
Model: os.Getenv("OPENAI_MODEL_ID"),
|
||||
APIKey: os.Getenv("OPENAI_API_KEY"),
|
||||
Reasoning: &responses.ReasoningParam{
|
||||
Effort: responses.ReasoningEffortLow,
|
||||
Summary: responses.ReasoningSummaryDetailed,
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("failed to create agentic model, err: %v", err)
|
||||
}
|
||||
|
||||
input := []*schema.AgenticMessage{
|
||||
schema.UserAgenticMessage("what is the weather like in Beijing"),
|
||||
}
|
||||
|
||||
am_, err := am.WithTools([]*schema.ToolInfo{
|
||||
{
|
||||
Name: "get_weather",
|
||||
Desc: "get the weather in a city",
|
||||
ParamsOneOf: schema.NewParamsOneOfByJSONSchema(&jsonschema.Schema{
|
||||
Type: "object",
|
||||
Properties: orderedmap.New[string, *jsonschema.Schema](
|
||||
orderedmap.WithInitialData(
|
||||
orderedmap.Pair[string, *jsonschema.Schema]{
|
||||
Key: "city",
|
||||
Value: &jsonschema.Schema{
|
||||
Type: "string",
|
||||
Description: "the city to get the weather",
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
Required: []string{"city"},
|
||||
}),
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("failed to create agentic model with tools, err: %v", err)
|
||||
}
|
||||
|
||||
msg, err := am_.Generate(ctx, input)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to generate, err: %v", err)
|
||||
}
|
||||
|
||||
meta := msg.ResponseMeta.Extension.(*openaischema.ResponseMetaExtension)
|
||||
|
||||
log.Printf("request_id: %s
|
||||
", meta.ID)
|
||||
respBody, _ := sonic.MarshalIndent(msg, " ", " ")
|
||||
log.Printf(" body: %s
|
||||
", string(respBody))
|
||||
}
|
||||
```
|
||||
|
||||
## 配置
|
||||
|
||||
可以使用 `agenticopenai.Config` 结构体配置 `AgenticModel`:
|
||||
|
||||
```go
|
||||
type Config struct {
|
||||
// ByAzure 指定是否使用 Azure OpenAI 服务。
|
||||
// 可选。
|
||||
ByAzure bool
|
||||
|
||||
// BaseURL 指定 OpenAI 服务端点的基准 URL。
|
||||
// 可选。
|
||||
BaseURL string
|
||||
|
||||
// APIKey 指定用于认证的 API 密钥。
|
||||
// 必填。
|
||||
APIKey string
|
||||
|
||||
// Timeout 指定等待 API 响应的最大持续时间。
|
||||
// 可选。
|
||||
Timeout *time.Duration
|
||||
|
||||
// HTTPClient 指定用于发送 HTTP 请求的客户端。
|
||||
// 可选。
|
||||
HTTPClient *http.Client
|
||||
|
||||
// MaxRetries 指定失败请求的最大重试次数。
|
||||
// 可选。
|
||||
MaxRetries *int
|
||||
|
||||
// Model 指定用于响应的模型 ID。
|
||||
// 必填。
|
||||
Model string
|
||||
|
||||
// MaxTokens 指定响应中生成的最大 token 数。
|
||||
// 可选。
|
||||
MaxTokens *int
|
||||
|
||||
// Temperature 控制模型输出的随机性。
|
||||
// 较高的值(如 0.8)使输出更随机,而较低的值(如 0.2)使输出更集中和确定。
|
||||
// 范围:0.0 到 2.0。
|
||||
// 可选。
|
||||
Temperature *float32
|
||||
|
||||
// TopP 通过核心采样控制多样性。
|
||||
// 它指定 token 选择的累积概率阈值。
|
||||
// 建议修改此项或 Temperature,但不要同时修改。
|
||||
// 范围:0.0 到 1.0。
|
||||
// 可选。
|
||||
TopP *float32
|
||||
|
||||
// ServiceTier 指定处理请求的延迟层级。
|
||||
// 可选。
|
||||
ServiceTier *responses.ResponseNewParamsServiceTier
|
||||
|
||||
// Text 指定文本生成输出的配置。
|
||||
// 可选。
|
||||
Text *responses.ResponseTextConfigParam
|
||||
|
||||
// Reasoning 指定推理模型的配置。
|
||||
// 可选。
|
||||
Reasoning *responses.ReasoningParam
|
||||
|
||||
// Store 指定是否在服务器上存储响应。
|
||||
// 可选。
|
||||
Store *bool
|
||||
|
||||
// MaxToolCalls 指定单轮中允许的最大工具调用次数。
|
||||
// 可选。
|
||||
MaxToolCalls *int
|
||||
|
||||
// ParallelToolCalls 指定是否允许在单轮中进行多次工具调用。
|
||||
// 可选。
|
||||
ParallelToolCalls *bool
|
||||
|
||||
// Include 指定响应中包含的额外字段列表。
|
||||
// 可选。
|
||||
Include []responses.ResponseIncludable
|
||||
|
||||
// ServerTools 指定模型可用的服务器端工具。
|
||||
// 可选。
|
||||
ServerTools []*ServerToolConfig
|
||||
|
||||
// MCPTools 指定模型可用的 Model Context Protocol 工具。
|
||||
// 可选。
|
||||
MCPTools []*responses.ToolMcpParam
|
||||
|
||||
// CustomHeader 指定 API 请求中包含的自定义 HTTP 标头。
|
||||
// CustomHeader 允许传递额外的元数据或身份验证信息。
|
||||
// 可选。
|
||||
CustomHeader map[string]string
|
||||
|
||||
// ExtraFields 指定将直接添加到 HTTP 请求体的额外字段。
|
||||
// 这允许支持尚未显式支持的供应商特定或未来参数。
|
||||
// 可选。
|
||||
ExtraFields map[string]any
|
||||
}
|
||||
```
|
||||
|
||||
## 高级用法
|
||||
|
||||
### 工具调用 (Tool Calling)
|
||||
|
||||
`AgenticModel` 支持工具调用,包括函数工具、MCP 工具和服务器工具。
|
||||
|
||||
#### 函数工具示例
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/bytedance/sonic"
|
||||
"github.com/cloudwego/eino-ext/components/model/agenticopenai"
|
||||
"github.com/cloudwego/eino/components/model"
|
||||
"github.com/cloudwego/eino/schema"
|
||||
"github.com/eino-contrib/jsonschema"
|
||||
"github.com/openai/openai-go/v3/responses"
|
||||
"github.com/wk8/go-ordered-map/v2"
|
||||
)
|
||||
|
||||
func main() {
|
||||
ctx := context.Background()
|
||||
|
||||
am, err := agenticopenai.New(ctx, &agenticopenai.Config{
|
||||
BaseURL: "https://api.agenticopenai.com/v1",
|
||||
Model: os.Getenv("OPENAI_MODEL_ID"),
|
||||
APIKey: os.Getenv("OPENAI_API_KEY"),
|
||||
Reasoning: &responses.ReasoningParam{
|
||||
Effort: responses.ReasoningEffortLow,
|
||||
Summary: responses.ReasoningSummaryDetailed,
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("failed to create agentic model, err=%v", err)
|
||||
}
|
||||
|
||||
functionTools := []*schema.ToolInfo{
|
||||
{
|
||||
Name: "get_weather",
|
||||
Desc: "get the weather in a city",
|
||||
ParamsOneOf: schema.NewParamsOneOfByJSONSchema(&jsonschema.Schema{
|
||||
Type: "object",
|
||||
Properties: orderedmap.New[string, *jsonschema.Schema](
|
||||
orderedmap.WithInitialData(
|
||||
orderedmap.Pair[string, *jsonschema.Schema]{
|
||||
Key: "city",
|
||||
Value: &jsonschema.Schema{
|
||||
Type: "string",
|
||||
Description: "the city to get the weather",
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
Required: []string{"city"},
|
||||
}),
|
||||
},
|
||||
}
|
||||
|
||||
allowedTools := []*schema.AllowedTool{
|
||||
{
|
||||
FunctionName: "get_weather",
|
||||
},
|
||||
}
|
||||
|
||||
opts := []model.Option{
|
||||
model.WithAgenticToolChoice(&schema.AgenticToolChoice{
|
||||
Forced: &schema.AgenticForcedToolChoice{
|
||||
Tools: allowedTools,
|
||||
},
|
||||
}),
|
||||
model.WithTools(functionTools),
|
||||
}
|
||||
|
||||
firstInput := []*schema.AgenticMessage{
|
||||
schema.UserAgenticMessage("what's the weather like in Beijing today"),
|
||||
}
|
||||
|
||||
sResp, err := am.Stream(ctx, firstInput, opts...)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to stream, err: %v", err)
|
||||
}
|
||||
|
||||
var msgs []*schema.AgenticMessage
|
||||
for {
|
||||
msg, err := sResp.Recv()
|
||||
if err != nil {
|
||||
if errors.Is(err, io.EOF) {
|
||||
break
|
||||
}
|
||||
log.Fatalf("failed to receive stream response, err: %v", err)
|
||||
}
|
||||
msgs = append(msgs, msg)
|
||||
}
|
||||
|
||||
concatenated, err := schema.ConcatAgenticMessages(msgs)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to concat agentic messages, err: %v", err)
|
||||
}
|
||||
|
||||
lastBlock := concatenated.ContentBlocks[len(concatenated.ContentBlocks)-1]
|
||||
if lastBlock.Type != schema.ContentBlockTypeFunctionToolCall {
|
||||
log.Fatalf("last block is not function tool call, type: %s", lastBlock.Type)
|
||||
}
|
||||
|
||||
toolCall := lastBlock.FunctionToolCall
|
||||
toolResultMsg := schema.FunctionToolResultAgenticMessage(toolCall.CallID, toolCall.Name, "20 degrees")
|
||||
|
||||
secondInput := append(firstInput, concatenated, toolResultMsg)
|
||||
|
||||
gResp, err := am.Generate(ctx, secondInput)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to generate, err: %v", err)
|
||||
}
|
||||
|
||||
meta := concatenated.ResponseMeta.OpenAIExtension
|
||||
log.Printf("request_id: %s
|
||||
", meta.ID)
|
||||
|
||||
respBody, _ := sonic.MarshalIndent(gResp, " ", " ")
|
||||
log.Printf(" body: %s
|
||||
", string(respBody))
|
||||
}
|
||||
```
|
||||
|
||||
#### 服务器工具示例
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/bytedance/sonic"
|
||||
"github.com/cloudwego/eino-ext/components/model/agenticopenai"
|
||||
"github.com/cloudwego/eino/components/model"
|
||||
"github.com/cloudwego/eino/schema"
|
||||
"github.com/openai/openai-go/v3/responses"
|
||||
)
|
||||
|
||||
func main() {
|
||||
ctx := context.Background()
|
||||
|
||||
am, err := agenticopenai.New(ctx, &agenticopenai.Config{
|
||||
BaseURL: "https://api.agenticopenai.com/v1",
|
||||
Model: os.Getenv("OPENAI_MODEL_ID"),
|
||||
APIKey: os.Getenv("OPENAI_API_KEY"),
|
||||
Reasoning: &responses.ReasoningParam{
|
||||
Effort: responses.ReasoningEffortLow,
|
||||
Summary: responses.ReasoningSummaryDetailed,
|
||||
},
|
||||
Include: []responses.ResponseIncludable{
|
||||
responses.ResponseIncludableWebSearchCallActionSources,
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("failed to create agentic model, err=%v", err)
|
||||
}
|
||||
|
||||
serverTools := []*agenticopenai.ServerToolConfig{
|
||||
{
|
||||
WebSearch: &responses.WebSearchToolParam{
|
||||
Type: responses.WebSearchToolTypeWebSearch,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
allowedTools := []*schema.AllowedTool{
|
||||
{
|
||||
ServerTool: &schema.AllowedServerTool{
|
||||
Name: string(agenticopenai.ServerToolNameWebSearch),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
opts := []model.Option{
|
||||
model.WithAgenticToolChoice(&schema.AgenticToolChoice{
|
||||
Forced: &schema.AgenticForcedToolChoice{
|
||||
Tools: allowedTools,
|
||||
},
|
||||
}),
|
||||
agenticopenai.WithServerTools(serverTools),
|
||||
}
|
||||
|
||||
input := []*schema.AgenticMessage{
|
||||
schema.UserAgenticMessage("what's cloudwego/eino"),
|
||||
}
|
||||
|
||||
resp, err := am.Stream(ctx, input, opts...)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to stream, err: %v", err)
|
||||
}
|
||||
|
||||
var msgs []*schema.AgenticMessage
|
||||
for {
|
||||
msg, err := resp.Recv()
|
||||
if err != nil {
|
||||
if errors.Is(err, io.EOF) {
|
||||
break
|
||||
}
|
||||
log.Fatalf("failed to receive stream response, err: %v", err)
|
||||
}
|
||||
msgs = append(msgs, msg)
|
||||
}
|
||||
|
||||
concatenated, err := schema.ConcatAgenticMessages(msgs)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to concat agentic messages, err: %v", err)
|
||||
}
|
||||
|
||||
for _, block := range concatenated.ContentBlocks {
|
||||
if block.ServerToolCall != nil {
|
||||
serverToolArgs := block.ServerToolCall.Arguments.(*agenticopenai.ServerToolCallArguments)
|
||||
args, _ := sonic.MarshalIndent(serverToolArgs, " ", " ")
|
||||
log.Printf("server_tool_args: %s
|
||||
", string(args))
|
||||
}
|
||||
|
||||
if block.ServerToolResult != nil {
|
||||
result := block.ServerToolResult.Result.(*agenticopenai.ServerToolResult)
|
||||
resultJSON, _ := sonic.MarshalIndent(result, " ", " ")
|
||||
log.Printf("server_tool_result: %s
|
||||
", string(resultJSON))
|
||||
}
|
||||
}
|
||||
|
||||
meta := concatenated.ResponseMeta.OpenAIExtension
|
||||
log.Printf("request_id: %s
|
||||
", meta.ID)
|
||||
|
||||
respBody, _ := sonic.MarshalIndent(concatenated, " ", " ")
|
||||
log.Printf(" body: %s
|
||||
", string(respBody))
|
||||
}
|
||||
```
|
||||
|
||||
更多示例请参考 `examples` 目录。
|
||||
25
docs/Eino/docs/ecosystem_integration/chat_template/_index.md
Normal file
25
docs/Eino/docs/ecosystem_integration/chat_template/_index.md
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
Description: ""
|
||||
date: "2025-01-20"
|
||||
lastmod: ""
|
||||
tags: []
|
||||
title: ChatTemplate
|
||||
weight: 8
|
||||
---
|
||||
|
||||
# ChatTemplate 组件列表
|
||||
|
||||
本分类的各组件详细文档请参考 GitHub README:
|
||||
|
||||
<table>
|
||||
<tr><td>组件名称</td><td>中文文档</td><td>English Docs</td></tr>
|
||||
<tr><td>MCP</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/prompt/mcp/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/prompt/mcp/README.md">README.md</a></td></tr>
|
||||
</table>
|
||||
|
||||
---
|
||||
|
||||
**说明**:
|
||||
|
||||
- 上述链接直接指向 GitHub 仓库的最新文档
|
||||
- 中文文档和英文文档内容同步更新
|
||||
- 如需查看历史版本或提交文档修改建议,请访问 GitHub 仓库
|
||||
32
docs/Eino/docs/ecosystem_integration/document/_index.md
Normal file
32
docs/Eino/docs/ecosystem_integration/document/_index.md
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
Description: ""
|
||||
date: "2026-03-02"
|
||||
lastmod: ""
|
||||
tags: []
|
||||
title: Document
|
||||
weight: 2
|
||||
---
|
||||
|
||||
# Document 组件列表
|
||||
|
||||
本分类的各组件详细文档请参考 GitHub README:
|
||||
|
||||
<table>
|
||||
<tr><td>组件名称</td><td>中文文档</td><td>English Docs</td></tr>
|
||||
<tr><td>amazon s3</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/document/loader/s3/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/document/loader/s3/README.md">README.md</a></td></tr>
|
||||
<tr><td>local file</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/document/loader/file/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/document/loader/file/README.md">README.md</a></td></tr>
|
||||
<tr><td>web url</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/document/loader/url/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/document/loader/url/README.md">README.md</a></td></tr>
|
||||
<tr><td>html</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/document/parser/html/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/document/parser/html/README.md">README.md</a></td></tr>
|
||||
<tr><td>pdf</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/document/parser/pdf/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/document/parser/pdf/README.md">README.md</a></td></tr>
|
||||
<tr><td>markdown</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/document/transformer/splitter/markdown/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/document/transformer/splitter/markdown/README.md">README.md</a></td></tr>
|
||||
<tr><td>recursive</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/document/transformer/splitter/recursive/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/document/transformer/splitter/recursive/README.md">README.md</a></td></tr>
|
||||
<tr><td>semantic</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/document/transformer/splitter/semantic/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/document/transformer/splitter/semantic/README.md">README.md</a></td></tr>
|
||||
</table>
|
||||
|
||||
---
|
||||
|
||||
**说明**:
|
||||
|
||||
- 上述链接直接指向 GitHub 仓库的最新文档
|
||||
- 中文文档和英文文档内容同步更新
|
||||
- 如需查看历史版本或提交文档修改建议,请访问 GitHub 仓库
|
||||
30
docs/Eino/docs/ecosystem_integration/embedding/_index.md
Normal file
30
docs/Eino/docs/ecosystem_integration/embedding/_index.md
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
Description: ""
|
||||
date: "2026-03-02"
|
||||
lastmod: ""
|
||||
tags: []
|
||||
title: Embedding
|
||||
weight: 3
|
||||
---
|
||||
|
||||
# Embedding 组件列表
|
||||
|
||||
本分类的各组件详细文档请参考 GitHub README:
|
||||
|
||||
<table>
|
||||
<tr><td>组件名称</td><td>中文文档</td><td>English Docs</td></tr>
|
||||
<tr><td>ARK</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/embedding/ark/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/embedding/ark/README.md">README.md</a></td></tr>
|
||||
<tr><td>Ollama</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/embedding/ollama/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/embedding/ollama/README.md">README.md</a></td></tr>
|
||||
<tr><td>OpenAI</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/embedding/openai/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/embedding/openai/README.md">README.md</a></td></tr>
|
||||
<tr><td>Qianfan</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/embedding/qianfan/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/embedding/qianfan/README.md">README.md</a></td></tr>
|
||||
<tr><td>TencentCloud</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/embedding/tencentcloud/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/embedding/tencentcloud/README.md">README.md</a></td></tr>
|
||||
<tr><td>dashscope</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/embedding/dashscope/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/embedding/dashscope/README.md">README.md</a></td></tr>
|
||||
</table>
|
||||
|
||||
---
|
||||
|
||||
**说明**:
|
||||
|
||||
- 上述链接直接指向 GitHub 仓库的最新文档
|
||||
- 中文文档和英文文档内容同步更新
|
||||
- 如需查看历史版本或提交文档修改建议,请访问 GitHub 仓库
|
||||
33
docs/Eino/docs/ecosystem_integration/indexer/_index.md
Normal file
33
docs/Eino/docs/ecosystem_integration/indexer/_index.md
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
Description: ""
|
||||
date: "2026-03-02"
|
||||
lastmod: ""
|
||||
tags: []
|
||||
title: Indexer
|
||||
weight: 6
|
||||
---
|
||||
|
||||
# Indexer 组件列表
|
||||
|
||||
本分类的各组件详细文档请参考 GitHub README:
|
||||
|
||||
<table>
|
||||
<tr><td>组件名称</td><td>中文文档</td><td>English Docs</td></tr>
|
||||
<tr><td>ElasticSearch 8</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/es8/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/es8/README.md">README.md</a></td></tr>
|
||||
<tr><td>Elasticsearch 7</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/es7/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/es7/README.md">README.md</a></td></tr>
|
||||
<tr><td>Elasticsearch 9</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/es9/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/es9/README.md">README.md</a></td></tr>
|
||||
<tr><td>Milvus v1 (旧版)</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/milvus/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/milvus/README.md">README.md</a></td></tr>
|
||||
<tr><td>Milvus v2 (推荐)</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/milvus2/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/milvus2/README.md">README.md</a></td></tr>
|
||||
<tr><td>OpenSearch 2</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/opensearch2/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/opensearch2/README.md">README.md</a></td></tr>
|
||||
<tr><td>OpenSearch 3</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/opensearch3/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/opensearch3/README.md">README.md</a></td></tr>
|
||||
<tr><td>Redis</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/redis/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/redis/README.md">README.md</a></td></tr>
|
||||
<tr><td>volc VikingDB</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/volc_vikingdb/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/indexer/volc_vikingdb/README.md">README.md</a></td></tr>
|
||||
</table>
|
||||
|
||||
---
|
||||
|
||||
**说明**:
|
||||
|
||||
- 上述链接直接指向 GitHub 仓库的最新文档
|
||||
- 中文文档和英文文档内容同步更新
|
||||
- 如需查看历史版本或提交文档修改建议,请访问 GitHub 仓库
|
||||
34
docs/Eino/docs/ecosystem_integration/retriever/_index.md
Normal file
34
docs/Eino/docs/ecosystem_integration/retriever/_index.md
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
Description: ""
|
||||
date: "2026-03-02"
|
||||
lastmod: ""
|
||||
tags: []
|
||||
title: Retriever
|
||||
weight: 7
|
||||
---
|
||||
|
||||
# Retriever 组件列表
|
||||
|
||||
本分类的各组件详细文档请参考 GitHub README:
|
||||
|
||||
<table>
|
||||
<tr><td>组件名称</td><td>中文文档</td><td>English Docs</td></tr>
|
||||
<tr><td>Dify</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/dify/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/dify/README.md">README.md</a></td></tr>
|
||||
<tr><td>Elasticsearch 7</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/es7/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/es7/README.md">README.md</a></td></tr>
|
||||
<tr><td>Elasticsearch 8</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/es8/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/es8/README.md">README.md</a></td></tr>
|
||||
<tr><td>Elasticsearch 9</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/es9/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/es9/README.md">README.md</a></td></tr>
|
||||
<tr><td>Milvus v1 (旧版)</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/milvus/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/milvus/README.md">README.md</a></td></tr>
|
||||
<tr><td>Milvus v2 (推荐)</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/milvus2/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/milvus2/README.md">README.md</a></td></tr>
|
||||
<tr><td>OpenSearch 2</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/opensearch2/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/opensearch2/README.md">README.md</a></td></tr>
|
||||
<tr><td>OpenSearch 3</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/opensearch3/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/opensearch3/README.md">README.md</a></td></tr>
|
||||
<tr><td>Redis</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/redis/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/redis/README.md">README.md</a></td></tr>
|
||||
<tr><td>volc VikingDB</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/volc_vikingdb/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/retriever/volc_vikingdb/README.md">README.md</a></td></tr>
|
||||
</table>
|
||||
|
||||
---
|
||||
|
||||
**说明**:
|
||||
|
||||
- 上述链接直接指向 GitHub 仓库的最新文档
|
||||
- 中文文档和英文文档内容同步更新
|
||||
- 如需查看历史版本或提交文档修改建议,请访问 GitHub 仓库
|
||||
33
docs/Eino/docs/ecosystem_integration/tool/_index.md
Normal file
33
docs/Eino/docs/ecosystem_integration/tool/_index.md
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
Description: ""
|
||||
date: "2026-03-02"
|
||||
lastmod: ""
|
||||
tags: []
|
||||
title: Tool
|
||||
weight: 4
|
||||
---
|
||||
|
||||
# Tool 组件列表
|
||||
|
||||
本分类的各组件详细文档请参考 GitHub README:
|
||||
|
||||
<table>
|
||||
<tr><td>组件名称</td><td>中文文档</td><td>English Docs</td></tr>
|
||||
<tr><td>MCP</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/mcp/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/mcp/README.md">README.md</a></td></tr>
|
||||
<tr><td>Bingsearch</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/bingsearch/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/bingsearch/README.md">README.md</a></td></tr>
|
||||
<tr><td>BrowserUse</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/browseruse/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/browseruse/README.md">README.md</a></td></tr>
|
||||
<tr><td>CommandLine</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/commandline/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/commandline/README.md">README.md</a></td></tr>
|
||||
<tr><td>DuckDuckGoSearch</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/duckduckgo/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/duckduckgo/README.md">README.md</a></td></tr>
|
||||
<tr><td>Googlesearch</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/googlesearch/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/googlesearch/README.md">README.md</a></td></tr>
|
||||
<tr><td>HTTPRequest</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/httprequest/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/httprequest/README.md">README.md</a></td></tr>
|
||||
<tr><td>SequentialThinking</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/sequentialthinking/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/sequentialthinking/README.md">README.md</a></td></tr>
|
||||
<tr><td>Wikipedia</td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/wikipedia/README_zh.md">README_zh.md</a></td><td><a href="https://github.com/cloudwego/eino-ext/blob/main/components/tool/wikipedia/README.md">README.md</a></td></tr>
|
||||
</table>
|
||||
|
||||
---
|
||||
|
||||
**说明**:
|
||||
|
||||
- 上述链接直接指向 GitHub 仓库的最新文档
|
||||
- 中文文档和英文文档内容同步更新
|
||||
- 如需查看历史版本或提交文档修改建议,请访问 GitHub 仓库
|
||||
Reference in New Issue
Block a user