当前位置: 首页 > news >正文

学习大模型RAG与Agent智能体基础知识day1

开头

各位好啊!
如你所见博主是个新手,新到这是我第一次发博客。
现在是2026.5.20的凌晨(哦情人节到了…),前几周刚刚学完langchain的基础知识,跟着教程做了个前后端(前端因为没学所以代码直接搬教程的)的AI私厨管家,借助阿里云成功在本地网络上跑起来了。

把前后端代码打包放到GitHub后,我开始下一段旅程:RAG知识的学习
学了一两天,我突然想到,或许把遇到的问题和有趣的事情写在博客里可以帮到别人,我自己也能当个错题本(有的错误不是第一次犯了)

所以,就是这样啦,我不擅长写文章,能看到这里真的很谢谢你!

对了,如果你真的想看看那个AI私厨的代码,到这个网址:
https://github.com/QHzzy035/AI_PrivateKitchen

接下来是日志部分!

代码一览

# 导入依赖fromopenaiimportOpenAIfromdotenvimportload_dotenvimportos#导入环境变量load_dotenv()# 获取openai对象openai_object=OpenAI(base_url=os.getenv("DASHSCOPE_BASE_URL"),api_key=os.getenv("DASHSCOPE_API_KEY"),)# 定义模型response=openai_object.chat.completions.create(model="qwen3.5-plus",messages=[{"role":"system","content":"你是一个python编程专家,而且话很多。"},{"role":"assistant","content":"好的,我是python编程专家,很高兴见到你,你要问什么?"},{"role":"user","content":"使用python编程技术输出1-10。"}],stream=True)# 流式输出forchunkinresponse:ifchunk.choicesandchunk.choices[0].delta.content:print(chunk.choices[0].delta.content,end="",flush=True)

日志1:导入dotenv

不要忘记导入dotenv中的load_dotenv并运行load_dotenv,除非你的环境变量都在高级系统设置中配置好了:(这是第二次犯错了)

fromdotenvimportload_dotenvimportos

如果没有导入这个,调用openai模型时会显示超时(没找到base_url,自动换成了openai官网的url,普通网络打不开)

日志2:流式输出

流式输出存在一些奇怪的地方,我一开始在输出部分写了这些代码:

forchunkinresponse:print(chunk.choices[0].delta.content,end="",flush=True)

结果输出就一直蹦出NoneNoneNone(后来发现其实运行一段时间后就正常吐字了),然后我改成了:

forchunkinresponse:ifchunk.choices[0].delta.content:print(chunk.choices[0].delta.content,end="",flush=True)

有了检测后None不再蹦出来了,结果运行到最后报错:IndexError: list index out of range

根据网上给的资料:

因为 if chunk.choices[0].delta.content: 会先执行 chunk.choices[0],如果 choices 是空列表,就会 IndexError。
所以我又加上了判断chunk.choices非空的代码:

forchunkinresponse:ifchunk.choicesandchunk.choices[0].delta.content:print(chunk.choices[0].delta.content,end="",flush=True)

好啦,这下解决了!

日志3:messages警告

等下,messages那块,一直警告:

应为类型 ‘Iterable[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam]’,但实际为 ‘list[dict[str, str]]’

问了AI告诉我是:

OpenAI SDK 的 messages 参数在类型系统中被定义为多种特定消息类型的联合(如 ChatCompletionSystemMessageParam、ChatCompletionUserMessageParam 等),每个类型有严格的字段要求(例如 role 必须是特定字面量,content 必须存在)。而你直接使用了通用的 list[dict[str, str]],类型检查器无法确认这些字典是否真的符合 API 所需的精确结构。

简单说就是:openai的消息有专门给用户消息,系统消息,AI回复消息,这三类设计的函数,按照SDK设计应该这样改:

fromopenai.types.chatimportChatCompletionSystemMessageParam,ChatCompletionUserMessageParam,ChatCompletionAssistantMessageParam messages=[ChatCompletionSystemMessageParam(role="system",content="..."),ChatCompletionAssistantMessageParam(role="assistant",content="..."),# 注意拼写ChatCompletionUserMessageParam(role="user",content="...")]

嗯,有点类似之前学lanngchain写的HumanMessage?但是不太一样,HumanMessages用在键值对中与"messages"相对的值位置:

response=agent.stream({"messages":[HumanMessage(content="宝宝,出去玩怎么样?不要老是坐在家里嘛。")]},stream_mode="messages")

(嗯,请无视文本)

后面我可能会换成SDK的方法,毕竟这个警告太烦了!

结语

好了,今天遇到的问题就这些,如果我写的没错的话,希望可以帮到你。

最后,可以给个赞吗?(装可爱)

http://www.jsqmd.com/news/860551/

相关文章:

  • 2025.12.18海南封关运作后,内地老板为何扎堆来注册公司?2026年海南注册公司代理记账靠谱财税机构排行榜单 - GrowthUME
  • 2026 年上海 GEO 优化公司权威榜单:全意图 GEO 驱动品牌魔都增长战略指南 - GEO优化
  • VS 2022教程VsCode技巧(创建C语言程序)
  • 为OpenClaw智能体工作流配置Taotoken作为稳定的模型供应后端
  • 2026年美容抗衰仪器价格指南:U.SUN时光梭如何实现全民抗衰普及? - GrowthUME
  • Amphenol ICC DRPC51A009A40线束组件详解与替代方案
  • 【限时解密】Midjourney毛发质感生成私藏Prompt库:仅剩87组未公开高保真指令(含犬科/灵长类/昆虫刚毛专用模板)
  • 紧急预警:拟态风格版权灰区已扩大!——2024最新欧盟AI生成物合规白皮书+5步规避侵权风险实操清单
  • 2026天津市北辰区家政公司权威榜单:口碑好又专业的TOP机构揭秘 - GrowthUME
  • VLA已死,WAM当立:机器人的GPT时刻到了吗?
  • TraceML:用三行代码为训练循环加入 step 级诊断
  • 大牛直播SDK(SmartMediaKit)Windows平台RTSP/RTMP直播播放SDK集成说明(C#版)
  • 解锁凋亡调控密码:核心蛋白与信号通路全景解析
  • 【Midjourney范戴克印相终极指南】:20年影像工艺专家首度公开AI胶片化调色黄金参数(含7组不可复制的v6提示词矩阵)
  • 30天学会AI工程师|Day 13:Tool Calling 不是高级玩法,它是 Agent 开始有手脚的那一步
  • OpenClaw(小龙虾AI)Windows一键部署包v2.7.5|零代码+可视化操作
  • 读懂数据结构:计算机存储数据的底层逻辑
  • 抖音视频怎么下载?2026年六大方法全解析及全类型工具对比 - GrowthUME
  • 2026年福州汽车贴膜行业横向测评白皮书 - GrowthUME
  • ‌我靠技术博客实现月入3w+:一名软件测试工程师的垂直深耕之路
  • 【Prompt实战】打破“废话生成器”魔咒:结构化提示词(CRISPE框架)编写指南
  • 谷歌正式发布 Gemini Omni Flash:对话式 AI 视频创作开启“闪电”新纪元
  • 天气太好啦
  • 2026 年广州 GEO 优化公司权威榜单:全意图 GEO 驱动品牌羊城增长战略指南 - GEO优化
  • 不敢露脸做视频?AI数字人功能让你3分钟生成专业口播视频
  • P3D引擎:面向割草游戏的ECS架构性能优化方案
  • 2026年商用多联机品牌推荐:写字楼/商场/工厂三大场景实测对比 - 奔跑123
  • 全国二手摩托车第三方检测机构推荐 - GrowthUME
  • Python,Go开发民营企业从粗放期到国际化标准化App(附代码)
  • 制造业安全生产无人化巡检,未来将全面普及吗?[2026实效定调:智能体企业引领工业安全新范式]