You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.1 KiB
2.1 KiB
| title |
|---|
| 第一章:ChatModel 与 Message(Console) |
本章目标:用最小代码调用一次 ChatModel(支持流式输出),并掌握 schema.Message 的基本用法。
代码位置
- 入口代码:cmd/ch01/main.go
前置条件
- Go 版本:与本目录
go.mod一致 - 一个可调用的 ChatModel(默认使用 OpenAI;也支持 Ark)
本 quickstart 复用 github.com/cloudwego/eino-examples/adk/common/model.NewChatModel() 来创建模型,它会读取环境变量选择不同 provider:
方式 A:OpenAI(默认)
需要配置(最小集合):
OPENAI_API_KEYOPENAI_MODEL
可选:
OPENAI_BASE_URL(例如走代理或兼容 OpenAI 协议的服务)OPENAI_BY_AZURE=true(如使用 Azure OpenAI)
示例:
export OPENAI_API_KEY="..."
export OPENAI_MODEL="gpt-4.1-mini"
方式 B:Ark
需要配置:
MODEL_TYPE=arkARK_API_KEYARK_MODEL
可选:
ARK_BASE_URL
示例:
export MODEL_TYPE="ark"
export ARK_API_KEY="..."
export ARK_MODEL="..."
关键概念(只讲本章用到的)
schema.Message:对话消息。常见角色为system/user/assistant/tool。本章使用system + user作为输入。ChatModel:模型组件,负责基于一组 messages 生成回复。示例中用model.NewChatModel()创建。
运行
在本章里我们用 Console 直接运行,不启动 Web 服务。
cd /Users/bytedance/github/eino/examples/quickstart/chatwithdoc
go run ./cmd/ch01 -- "用一句话解释 Eino 的 Component 设计解决了什么问题?"
你会看到类似输出(流式逐步打印):
[assistant] ...
入口代码做了什么
按执行顺序:
NewChatModel()创建 ChatModel(从环境变量选择 OpenAI/Ark)- 构造输入 messages:
SystemMessage(instruction)+UserMessage(query) - 优先尝试
ChatModel.Stream(...)并打印流式输出;若不支持则回退到ChatModel.Generate(...)