Skip to content

Commit

Permalink
update eino doc
Browse files Browse the repository at this point in the history
  • Loading branch information
kuhahalong committed Jan 21, 2025
1 parent b324caa commit fd2b6d1
Show file tree
Hide file tree
Showing 118 changed files with 442 additions and 347 deletions.
2 changes: 1 addition & 1 deletion content/zh/docs/eino/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ menu:
parent: 文档
weight: 6
tags: []
title: Eino
title: Eino 用户手册
weight: 6
---

Expand Down
4 changes: 2 additions & 2 deletions content/zh/docs/eino/core_modules/_index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
Description: ""
date: "2025-01-06"
date: "2025-01-20"
lastmod: ""
tags: []
title: 'Eino: 核心模块'
Expand All @@ -19,4 +19,4 @@ Eino 抽象出来的大模型应用中常用的组件,例如 `ChatModel`、`Em

- **Flow 集成工具 (agents)**: [Eino: Flow 集成组件](/zh/docs/eino/core_modules/flow_integration_components)

Eino 把最常用的大模型应用模式封装成简单、易用的工具,让通用场景的大模型应用开发极致简化,目前提供了 `React Agent``Host Multi Agent`
Eino 把最常用的大模型应用模式封装成简单、易用的工具,让通用场景的大模型应用开发极致简化,目前提供了 `ReAct Agent``Host Multi Agent`
38 changes: 19 additions & 19 deletions content/zh/docs/eino/core_modules/components/chat_model_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ title: 'Eino: ChatModel 使用说明'
weight: 0
---

## **基本介绍**
## 基本介绍

Model 组件是一个用于与大语言模型交互的组件。它的主要作用是将用户的输入消息发送给语言模型,并获取模型的响应。这个组件在以下场景中发挥重要作用:

Expand All @@ -16,9 +16,9 @@ Model 组件是一个用于与大语言模型交互的组件。它的主要作
- 工具调用的参数生成
- 多模态交互(文本、图片、音频等)

## **组件定义**
## 组件定义

### **接口定义**
### 接口定义

```go
type ChatModel interface {
Expand All @@ -28,7 +28,7 @@ type ChatModel interface {
}
```

#### **Generate 方法**
#### Generate 方法

- 功能:生成完整的模型响应
- 参数:
Expand All @@ -39,23 +39,23 @@ type ChatModel interface {
- `*schema.Message`:模型生成的响应消息
- error:生成过程中的错误信息

#### **Stream 方法**
#### Stream 方法

- 功能:以流式方式生成模型响应
- 参数:与 Generate 方法相同
- 返回值:
- _*schema.StreamReader[*schema.Message]__:模型响应的流式读取器_
- `*schema.StreamReader[*schema.Message]`:模型响应的流式读取器
- error:生成过程中的错误信息

#### **BindTools 方法**
#### BindTools 方法

- 功能:为模型绑定可用的工具
- 参数:
- tools:工具信息列表
- 返回值:
- error:绑定过程中的错误信息

### **Message 结构体 **
### Message 结构体

```go
type Message struct {
Expand Down Expand Up @@ -85,7 +85,7 @@ Message 结构体是模型交互的基本结构,支持:
- 工具调用:支持模型调用外部工具和函数
- 元信息:包含响应原因、token 使用统计等

### **公共 Option**
### 公共 Option

Model 组件提供了一组公共 Option 用于配置模型行为:

Expand Down Expand Up @@ -123,9 +123,9 @@ WithTopP(topP float32) Option
WithStop(stop []string) Option
```

## **使用方式**
## 使用方式

### **单独使用**
### 单独使用

```go
// 初始化模型 (以openai为例)
Expand Down Expand Up @@ -174,7 +174,7 @@ for {
}
```

### **在编排中使用**
### 在编排中使用

```go
// 在 Chain 中使用
Expand All @@ -193,9 +193,9 @@ graph := compose.NewGraph[[]*schema.Message, *schema.Message]()
graph.AddChatModelNode("model_node", model)
```

## **Option 和 Callback 使用**
## Option 和 Callback 使用

### **Option 使用示例**
### Option 使用示例

```go
// 使用 Option
Expand All @@ -206,7 +206,7 @@ response, err := model.Generate(ctx, messages,
)
```

### **Callback 使用示例**
### Callback 使用示例

```go
// 创建 callback handler
Expand Down Expand Up @@ -244,15 +244,15 @@ result, err := runnable.Invoke(ctx, messages, compose.WithCallbacks(helper))
2. Ollama ChatModel: 使用 Ollama 本地模型 [ChatModel - Ollama](/zh/docs/eino/ecosystem_integration/chat_model/chat_model_ollama)
3. ARK ChatModel: 使用 ARK 平台的模型服务 [ChatModel - ARK](/zh/docs/eino/ecosystem_integration/chat_model/chat_model_ark)

## **自行实现参考**
## 自行实现参考

实现自定义的 ChatModel 组件时,需要注意以下几点:

1. 注意要实现公共的 option
2. 注意实现 callback 机制
3. 在流式输出时记得完成输出后要 close writer

### **Option 机制**
### Option 机制

自定义 ChatModel 需要实现自己的 Option 机制:

Expand All @@ -278,7 +278,7 @@ func WithTimeout(timeout time.Duration) model.Option {
}
```

### **Callback 处理**
### Callback 处理

ChatModel 实现需要在适当的时机触发回调,以下结构由 ChatModel 组件定义:

Expand All @@ -299,7 +299,7 @@ type CallbackOutput struct {
}
```

### **完整实现示例**
### 完整实现示例

```go
type MyChatModel struct {
Expand Down
Loading

0 comments on commit fd2b6d1

Please sign in to comment.