1 langchain 是什么?

    如果聊天机器人除了回答通用问题以外,还能根据我们自己的私有数据,回答问题或执行相应动作,怎么去实现呢?比如要聊天机器人发个邮件。比如我想做一个律师,但律师要学的东西太多了,要学几十本书,那么我可以让聊天机器人去学习这几十本书,我遇到问法律方面的问题直接问聊天机器人就好了。langchain就是为实现这一目标而诞生的。

    Langchain 是一个开源框架,允许开发人员将大型语言模型与外部的计算和数据结合起来。

    大语言模型如果要用到各行各业去落地的话,一定会用到langchain。国内非常喜欢在应用方面做开发。

2 Langchain 的核心

modles: 模型,langchain 和大模型的接口,各种类型的模型和模型集成,如GPT-4。

Prompty : 提示模版, 输入大模型的提示模版。

Memory:记忆, 与大模型聊天过程中的记忆信息。

Indexes: 索引,非结构化的查找和访问,帮助语言模型提取信息。

chains: 允许多个组件组合一起,解决特定任务。

Agents: 代理允许语言模型与外部api交互。

langchan 的底层原理

智能问答系统工作流程

1 用户提出问题,经过相似性搜索在大型数据库或向量空间中找到与之相关的信息。

2 得到的信息与原始问题结合,由处理模型分析,产生一个答案。

3 答案指导一个代理采取一个动作。

Langchain 的应用场景

1 个人助手:帮助预定航班,转账,缴税。

2 学习辅助:参考课程大纲,帮助搜集学习资料。

3 数据分析和数据科学。例如公司的客户数据和市场数据。

3 Langchain 和千帆安装(ubantu 环境)

安装 langchain, openai, qianfan

pip install langchain

pip install langchain-community

pip install langchain-openai

pip install qianfan

3.1介绍langSmish

    是一个用于构建生产级LLM 应用程序的平台,它提供了调试,测试,评估和监控基于任何LLM框架构建的链和智能代理功能。例如:要跟踪我的大语言模型的token 的数量, 可以用工具 LangSmish。

3.2 LangChain的官网

LangChain的官网分为英文和中文两个版本,具体信息如下:

04 采用langchain 调用LLM(大语言模型)

代码如下:

import os

from langchain_community.llms import QianfanLLMEndpoint

# key
os.environ['QIANFAN_AK'] = '你的key'
os.environ['QIANFAN_SK'] = '你的secret key'

# 实例化一个应用
# llm = QianfanLLMEndpoint(modle='Llama-2-70b-chat')
# llm = QianfanLLMEndpoint()

llm = QianfanLLMEndpoint(streaming=True)
res = llm.invoke("hi")
print(res)

res = llm.invoke("你好,我是个ai学习者")
print(res)

# 你好!有什么我可以帮助你的吗?
# 你好,很高兴你对AI学习感兴趣!AI是一个非常有趣和充满挑战的领域,涵盖了机器学习、深度学习、自然语言处理等多个方向。
#
# 如果你是初学者,我建议你先了解一些基础知识,比如机器学习的基本概念、常见的算法和模型等。同时,你也可以通过一些在线课程或教程来学习AI的相关知识。
#
# 在学习的过程中,你可能会遇到一些困难和挑战,但不要气馁。AI领域的知识体系非常庞大,需要不断学习和实践才能掌握。你可以通过阅读相关的书籍、参加线上或线下的学习活动、与其他学习者交流等方式来提高自己的学习效果。
#
# 最后,我想说的是,AI是一个不断发展的领域,新的技术和应用不断涌现。保持学习的热情和好奇心,不断探索和学习新的知识和技能,将会帮助你在这个领域取得更好的成绩。祝你学习愉快!
#
# Process finished with exit code 0


# 参考
# https://python.langchain.com/docs/integrations/llms/baidu_qianfan_endpoint/

05 采用langchain 调用chat modles (聊天模型)

代码如下:

"""For basic init and call"""
import os

from langchain_community.chat_models import QianfanChatEndpoint
from langchain_core.language_models.chat_models import HumanMessage

# key
os.environ['QIANFAN_AK'] = '你的千帆key'
os.environ['QIANFAN_SK'] = '你的千帆 secret key'

# chat modle
chat = QianfanChatEndpoint(streaming=True)
messages = [HumanMessage(content="Hello")]
res = chat.invoke(messages)
print(res)

# content='Hello! 你好!很高兴收到你的消息。有什么我可以帮助你的吗?或者你想聊些什么话题?请随时告诉我,我会尽力回答你的问题或与你进行交流。' response_metadata={'token_usage': {'input_tokens': 1, 'output_tokens': 35, 'total_tokens': 36}, 'model_name': None, 'finish_reason': 'stop'} id='run-5a390c10-2895-4600-aaff-2728737608a5-0' usage_metadata={'input_tokens': 1, 'output_tokens': 35, 'total_tokens': 36}

# 参考
# https://python.langchain.com/docs/integrations/chat/baidu_qianfan_endpoint/

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐