实现一个最简 LLM 应用

实现一个最简 LLM 应用本指南将帮助你快速上手使用 Eino 框架中的 ChatModel 构建一个简单的 LLM 应用 我们将通过实现一个 程序员鼓励师 的例子 来展示如何使用 ChatModel 本文中示例的代码片段详见 eino examples quickstart chat ChatModel 是 Eino 框架中对对话大模型的抽象 它提供了统一的接口来与不同的大模型服务 如

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



本指南将帮助你快速上手使用 Eino 框架中的 ChatModel 构建一个简单的 LLM 应用。我们将通过实现一个”程序员鼓励师”的例子,来展示如何使用 ChatModel。

💡 本文中示例的代码片段详见:eino-examples/quickstart/chat

ChatModel 是 Eino 框架中对对话大模型的抽象,它提供了统一的接口来与不同的大模型服务(如 OpenAI、Ollama 等)进行交互。

组件更详细的介绍参考: Eino: ChatModel 使用说明

在 Eino 中,对话是通过 来表示的,这是 Eino 对一个对话消息的抽象定义。每个 Message 包含以下重要字段:

  • : 消息的角色,可以是:
    • : 系统指令,用于设定模型的行为和角色
    • : 用户的输入
    • : 模型的回复
    • : 工具调用的结果
  • : 消息的具体内容

让我们通过实现一个程序员鼓励师来学习如何使用 ChatModel。这个助手不仅能提供技术建议,还能在程序员感到难过时给予心理支持。

Eino 提供了强大的模板化功能来构建要输入给大模型的消息:

  1. 模版渲染,支持三种模版格式:
    • FString:Python 风格的简单字符串格式化(例如:“你好,{name}!”)
    • Jinja2:支持丰富表达式的 Jinja2 风格模板(例如:“你好,{{name}}!”)
    • GoTemplate:Go 语言内置的 text/template 格式(例如:“你好,{{.name}}!”)
  2. 消息占位符:支持插入一组消息(如对话历史)

更详细的组件介绍可参考: Eino: ChatTemplate 使用说明

下面是完整的 FString 格式 + 消息占位符的对话模板创建及使用代码:

ChatModel 是 Eino 框架中最核心的组件之一,它提供了与各种大语言模型交互的统一接口。Eino 目前支持以下大语言模型的实现:

  • OpenAI:支持 GPT-3.5/GPT-4 等模型 (同样支持 azure 提供的 openai 服务)
  • Ollama:支持本地部署的开源模型
  • Ark:火山引擎上的模型服务 (例如字节的豆包大模型)
  • 更多模型正在支持中

支持的模型可以参考:Eino: 生态集成

下面我们以 OpenAI 和 Ollama 为例,展示如何创建和使用 ChatModel:

OpenAI (和下方 ollama 2 选 1)

OpenAI ChatModel 的详细信息可以参考:ChatModel - OpenAI

Ollama(和上方 openai 2 选 1)

Ollama 支持在本地运行开源模型,适合对数据隐私有要求或需要离线使用的场景。

Ollama ChatModel 的详细信息可以参考:ChatModel - Ollama

Eino 为大模型提供了统一的 ChatModel 抽象,并提供了开箱即用的各类 LLM 实现,因此业务代码可以无需关注模型实现细节从而专注业务逻辑编写,模型实现迭代时不会影响核心业务逻辑,这意味着开发者可以轻松地在不同的模型之间切换,而无需修改大量代码。

经过前两步得到 ChatModel 的输入 messages 和初始化完成后的 ChatModel 实例后,可以开始尝试运行 ChatModel 了。Eino ChatModel 提供了两种运行模式:输出完整消息(generate)和输出消息流(stream):

在实际应用中,有很多场景需要使用流式响应,主要的场景例如「提升用户体验」:stream 运行模式让 ChatModel 提供类似打字机的输出效果,使用户更早得到模型响应。

Eino 中对流式输出的处理方式如下:

完整实现参见:eino-examples/quickstart/chat/main.go

本示例通过一个程序员鼓励师的案例,展示了如何使用 Eino 框架构建 LLM 应用。从 ChatModel 的创建到消息模板的使用,再到实际的对话实现,相信你已经对 Eino 框架有了基本的了解。无论是选择 OpenAI、Ollama 还是其他模型实现,Eino 都提供了统一且简单的使用方式。希望这个示例能帮助你快速开始构建自己的 LLM 应用。

  • 快速开始
    • Agent-让大模型拥有双手


小讯
上一篇 2026-03-14 03:12
下一篇 2026-03-14 03:10

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/234520.html