困扰了一天的flask结合智谱ai langchain流式输出json问题终于解决了

本次对接的大模型是智谱,首先想到去智谱开放平台找找有没有和langchain结合的文档:

结果还真有,就省去了谷歌的时间,但是智谱的文档只提供了非流式的示例代码,想着先拷过来跑一下再说,结果就是非流式是正常输出的,流式就遇到问题了,不管我咋配置,好像只能在控制台输出流失内容,遂去谷歌“langchain 流式输出”:

前面三篇文章都看了,第一篇内容:

好像和智谱官方的文档写法不一样,遂放弃使用该方式,接着又看了第二篇文章:

他这里说是要在初始化llm的时候加一个callbacks参数,并且自定义callbacks,最终的代码大致如下:

但他这里没有写全,起初我也没看懂为啥这么写,遂看了下其他人的写法:

原来在初始化llm的时候就需要注入自己的callbacks,然后我也试了这样写,确实能在on_llm_new_token中拿到每次流式的内容,但是不能yield出来,我就有点搞不明白,然后又看了一些更复杂的代码,我发现我看不懂:

还有走异步机制的:

我都有点迷惑了,到底啥代码才适合我呢?然后我就一直在尝试callbacks,搞到晚上11点,此时我心态有点崩了,遂盖上笔记本,不搞了先,然后我就和项目负责人说了langchain的流式搞不定,还是用原生的写法了,不用langchain。

然后第二天我还是打算再会一会这个langchain的流式输出,我就不信了。

先在群里请教了一下,然后给我发了一段很长的代码,额,这啥。

遂想到昨天谷歌搜索时的第二个网站的内容,抱着试试的心态,ctrl c、ctrl v,它就流起来了,它真的流起来:

def get_llm_lc(self, app, r: ChatCompletionRequestStruct):

  """

  获取ai响应langchain版

  """

  return ChatOpenAI(

    temperature=0.5,

    openai_api_key=Config.ZHIPUAI_API_KEY,

    openai_api_base=Config.ZHIPUAI_OPENAI_API_URL,

    model=Config.ZHIPUAI_MODEL,

    streaming=r.streaming,

    callbacks=[StreamingStdOutCallbackHandler()],

  )

def get_prompt_lc(self):

  return ChatPromptTemplate.from_messages(

    [

    # ("system", "你是一个专业的AI助手。"),

    ("human", "{question}")

    ]

  )

llm = self.get_llm_lc(app, r)

prompt = self.get_prompt_lc()

llm_chain = prompt | llm

ret = llm_chain.stream({"question": r.question})

for _token in ret:

  token = _token.content

  finish_reason = ''

  if 'finish_reason' in _token.response_metadata:

  finish_reason = _token.response_metadata['finish_reason']

  reply = ChatCompletionResponseStruct()

  reply.text = token

  reply.finish_reason = finish_reason

  yield json.dumps(reply.to_dict(), ensure_ascii=False) + '\n'

总算舒了一口气,流式响应需求算是完成了,接下来是rag的,到目前位置我还不知道rag是啥,咋实现的。

在这里插入图片描述

大模型&AI产品经理如何学习

求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方图片前往获取

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值