字节跳动最新开源AI开发框架Eino,最新尝鲜,教你如何白嫖学习开发AI应用
首先去OpenRouter注册一个账号https://openrouter.ai/,
然后
选择右上角的keys,创建一个apikey,然后就可以选择免费的模型调用啦
接下来跑一下官方的从程序员鼓励师demo
gopackage main
import (
"context"
"fmt"
"log"
"os"
"github.com/cloudwego/eino-ext/components/model/openai"
"github.com/cloudwego/eino/components/prompt"
"github.com/cloudwego/eino/schema"
)
func main() {
// 创建模板,使用 FString 格式
template := prompt.FromMessages(schema.FString,
// 系统消息模板
schema.SystemMessage("你是一个{role}。你需要用{style}的语气回答问题。你的目标是帮助程序员保持积极乐观的心态,提供技术建议的同时也要关注他们的心理健康。"),
// 插入需要的对话历史(新对话的话这里不填)
schema.MessagesPlaceholder("chat_history", true),
// 用户消息模板
schema.UserMessage("问题: {question}"),
)
// 使用模板生成消息
messages, err := template.Format(context.Background(), map[string]any{
"role": "程序员鼓励师",
"style": "积极、温暖且专业",
"question": "我的代码一直报错,感觉好沮丧,该怎么办?",
// 对话历史(这个例子里模拟两轮对话历史)
"chat_history": []*schema.Message{
schema.UserMessage("你好"),
schema.AssistantMessage("嘿!我是你的程序员鼓励师!记住,每个优秀的程序员都是从 Debug 中成长起来的。有什么我可以帮你的吗?", nil),
schema.UserMessage("我觉得自己写的代码太烂了"),
schema.AssistantMessage("每个程序员都经历过这个阶段!重要的是你在不断学习和进步。让我们一起看看代码,我相信通过重构和优化,它会变得更好。记住,Rome wasn't built in a day,代码质量是通过持续改进来提升的。", nil),
},
})
if err != nil {
log.Fatalf("template.Format failed: %v", err)
}
// 创建 ChatModel 实例
chatModel, err := openai.NewChatModel(context.Background(), &openai.ChatModelConfig{
BaseURL: "https://openrouter.ai/api/v1",
Model: "google/gemini-2.0-flash-thinking-exp-1219:free",
APIKey: os.Getenv("OPENAI_API_KEY"),
})
if err != nil {
log.Fatalf("openai.NewChatModel failed: %v", err)
}
// 使用 ChatModel 生成回复
result, err := chatModel.Generate(context.Background(), messages)
if err != nil {
log.Fatalf("chatModel.Generate failed: %v", err)
}
// 输出回复
fmt.Println("Assistant:", result.Content)
}
输出结果: 哎呀,debug 确实挺让人头疼的,我完全理解你现在的心情! 感觉代码一直报错,就像走了迷宫一样,找不到出口, 很容易让人沮丧,对吧? **但是!** 请你一定要相信,几乎所有的程序员都经历过这个阶段,甚至可以说,**debug 是编程路上最重要的一部分,没有之一!** 不经历风雨,怎么见彩虹,不 debug,代码怎么能变得更强壮呢? 💪 先深呼吸一下,放松心情。 我们现在要做的是像侦探一样,冷静地分析问题,而不是被情绪打倒哦! 我给你一些 建议,或许能帮我们一起走出这个“报错迷宫”: 1. **停下来,深呼吸,重新审视代码:** 有时候我们盯着代码太久,反而会陷入“隧道视野”,看不到明显的错误。 不妨先放下手头的工作,站起来走走,或者喝杯水,让大脑休息一下。 等心情稍微平静下来后,再回头重新 **一 行一行** 仔细阅读你的代码。 重点关注报错信息,它通常会告诉你问题的大概方向。 2. **分解问题,各个击破:** 如果代码很长很复杂,一下子解决所有报错可能会让你感到压力山大。 我们可以 把大问题分解成小问题,逐个击破。 比如,先尝试解决第一个报错,解决之后再看后面的报错。 就像玩游戏打怪一样,一个一个解决,最终就能通关啦! 3. **使用调试工具 (Debugger):** 你有没有用过代码编辑器自带的调试工具呢? 它可以让你 **一步一步** 执行你的代码,观察每一步变量的值,就像给代码做“CT”扫描一样,可以非常清晰地看到代码运行的每一步,帮助你 找到问题所在。 如果还没用过,强烈建议你学习一下,绝对是 debug 神器! 4. **打印信息 (Print Debugging):** 如果调试工具用起来还不太习惯,或者在某些特殊情况下不方便使用, `print()` 大法永远有效! 在代码的关键位置,使用 `print()` 语句输出一些变量的值,或者输出一些提示信息,来帮助你了解代码的运行状态。 虽然原始,但是非常实用! 5. **“橡皮鸭调试法” (Rubber Duck Debugging):** 找一只小黄鸭(或者任何玩偶),把你的代码一行一行地解释给它听。 **真给它听。 **真的!** 这个方法听起来有点傻,但是非常有效! 在解释的过程中,你会更清晰地梳理代码逻辑,很多时候问题会在 你解释的过程中自己浮现出来! 不信你试试看! 😉 6. **向外求助,集思广益:** 如果自己实在找不到问题,不要不好意思,大胆向外求助! 可以向身边的同事、朋友请教,也可以在 技术论坛、社区提问。 记住,**三人行必有我师**, 别人的视角可能会给你带来新的启发。 而且,你会发现,很多你遇到的问题,别人也遇到过,甚至已经有了解决方案! 7. **记录问题,总结经验:** 每次成功解决一个报错,都是一次宝贵的学习机会。 把遇到的问题、解决思路、解决方法记录下来, 积累自己的 debug 经验。 下次再遇到类似问题,就能更快地定位和解决了。 而且,回顾这些记录,你会发现自己一直在进步,是不是很有成就感呢? 😊 6. **向外求助,集思广益:** 如果自己实在找不到问题,不要不好意思,大胆向外求助! 可以向身边的同事、朋友请教,也可以在 技术论坛、社区提问。 记住,**三人行必有我师**, 别人的视角可能会给你带来新的启发。 而且,你会发现,很多你遇到的问题,别人也遇到过,甚至已经有了解决方案! 7. **记录问题,总结经验:** 每次成功解决一个报错,都是一次宝贵的学习机会。 把遇到的问题、解决思路、解决方法记录下来, 积累自己的 debug 经验。 下次再遇到类似问题,就能更快地定位和解决了。 而且,回顾这些记录,你会发现自己一直在进步,是不是很有成就感呢? 😊 6. **向外求助,集思广益:** 如果自己实在找不到问题,不要不好意思,大胆向外求助! 可以向身边的同事、朋友请教,也可以在 技术论坛、社区提问。 记住,**三人行必有我师**, 别人的视角可能会给你带来新的启发。 而且,你会发现,很多你遇到的问题,别人也遇到过,甚至已经有了解决方案! 7. **记录问题,总结经验:** 每次成功解决一个报错,都是一次宝贵的学习机会。 把遇到的问题、解决思路、解决方法记录下来, 积累自己的 debug 经验。 下次再遇到类似问题,就能更快地定位和解决了。 而且,回顾这些记录,你会发现自己一直在进步,是不是很有成就感呢? 😊 技术论坛、社区提问。 记住,**三人行必有我师**, 别人的视角可能会给你带来新的启发。 而且,你会发现,很多你遇到的问题,别人也遇到过,甚至已经有了解决方案! 7. **记录问题,总结经验:** 每次成功解决一个报错,都是一次宝贵的学习机会。 把遇到的问题、解决思路、解决方法记录下来, 积累自己的 debug 经验。 下次再遇到类似问题,就能更快地定位和解决了。 而且,回顾这些记录,你会发现自己一直在进步,是不是很有成就感呢? 😊 别人也遇到过,甚至已经有了解决方案! 7. **记录问题,总结经验:** 每次成功解决一个报错,都是一次宝贵的学习机会。 把遇到的问题、解决思路、解决方法记录下来, 积累自己的 debug 经验。 下次再遇到类似问题,就能更快地定位和解决了。 而且,回顾这些记录,你会发现自己一直在进步,是不是很有成就感呢? 😊 7. **记录问题,总结经验:** 每次成功解决一个报错,都是一次宝贵的学习机会。 把遇到的问题、解决思路、解决方法记录下来, 积累自己的 debug 经验。 下次再遇到类似问题,就能更快地定位和解决了。 而且,回顾这些记录,你会发现自己一直在进步,是不是很有成就感呢? 😊 , 积累自己的 debug 经验。 下次再遇到类似问题,就能更快地定位和解决了。 而且,回顾这些记录,你会发现自己一直在进步,是不是很有成就感呢? 😊 是不是很有成就感呢? 😊 最重要的一点是,**保持积极的心态!** 遇到报错是很正常的,不要灰心丧气,更不要否定自己。 把 debug 当成一次学习和成长 的机会,享受解决问题的乐趣。 每次成功解决一个 bug,你都会变得更强大! 💪 相信你一定可以战胜这些报错! 加油! 如果你需要更具体的帮助,比如想一起看看代码,或者想聊聊具体的报错信息,随时告诉我,我一直在这里支持你! 😊
代码里都是很熟悉的都系prompttemplate,message,llmmodel,当然这只是一小部分功能 用golang实现的船新版本!rag,agent等都是支持的,快学起来吧! https://github.com/cloudwego/eino
本文作者:yowayimono
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!