10分钟搞定LangChain+Milvus+千帆大模型平台RAG应用

前言

LangChain 是一个开源 Python 框架,利用 LangChain,开发人员能够非常方便的开发基于大型语言模型的应用程序。

百度千帆大模型平台是文心大模型企业级服务唯一入口,一站式企业级大模型平台,提供先进的生成式AI生产及应用全流程开发工具链。

Milvus 是一个高性能的开源向量数据库,专为处理和分析大规模向量数据而设计。

LangChain+千帆大模型入门

安装

# 安装langchain
pip3 install langchain -i https://pypi.tuna.tsinghua.edu.cn/simple
# 安装qianfan
pip3 install qianfan -i https://pypi.tuna.tsinghua.edu.cn/simple

获取千帆大模型平台应用API Key、Secret Key

  • 登录 [千帆大模型平台]
  • 应用接入-创建应用
  • 获取API Key、Secret Key image.png

入门

通过LangChain调用千帆大模型实现简单对话应用。

import os
from langchain_community.llms import QianfanLLMEndpoint

os.environ["QIANFAN_AK"] = "API_KEY"
os.environ["QIANFAN_SK"] = "SECRET_KEY"

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

Milvus安装及使用

安装

pip3 install milvus -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install pymilvus -i https://pypi.tuna.tsinghua.edu.cn/simple

启动

  • 将milvus作为python模块启动及使用:
from milvus import default_server
from pymilvus import connections, utility
 
# 启动
default_server.start()
 
connections.connect(host='127.0.0.1', port=default_server.listen_port)
 
# 检测服务是否正常启动
print(utility.get_server_version())
 
# 停止
default_server.stop()

  • 将milvus作为独立服务启动:
$ milvus-server

入门

利用百度千帆大模型平台的向量模型来实现文本转向量存入milvus中并查询。

import os
from langchain_community.document_loaders import WebBaseLoader
from langchain_community.embeddings import QianfanEmbeddingsEndpoint
from langchain_community.vectorstores import Milvus
from milvus import default_server
from langchain.text_splitter import RecursiveCharacterTextSplitter

os.environ["QIANFAN_AK"] = "API_KEY"
os.environ["QIANFAN_SK"] = "SECRET_KEY"

# 定义URL
WEB_URL = "https://zhuanlan.zhihu.com/p/89354916"
# 使用WebBaseLoader加载HTML
loader = WebBaseLoader(WEB_URL)
docs = loader.load()
# 加载千帆向量模型
embeddings = QianfanEmbeddingsEndpoint()
# 加载递归字符文本分割器
text_splitter = RecursiveCharacterTextSplitter(chunk_size = 384, chunk_overlap = 0, separators=["\n\n", "\n", " ", "", "。", ","])
# 加载文本
documents = text_splitter.split_documents(docs)
# 存入向量库
vector_db = Milvus.from_documents(
    documents,
    QianfanEmbeddingsEndpoint(),
    connection_args ={"host": "127.0.0.1", "port": default_server.listen_port},
)

query = "周武王建周是哪年"
res = vector_db.similarity_search(query)
print(res)

RAG应用

RAG基本架构

image.png

RAG入门案例

利用LangChain框架中load_qa_with_sources_chain来实现简单RAG应用。 它用于构建一个问答链,这个链能够处理包含多个文档的问答任务。该功能的核心在于它能够结合文档内容来回答特定问题,并且能够提供回答问题的文档来源,增加了答案的可追溯性和可信度。

import os
from langchain_community.document_loaders import WebBaseLoader
from langchain_community.embeddings import QianfanEmbeddingsEndpoint
from langchain_community.vectorstores import Milvus
from milvus import default_server
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.llms import QianfanLLMEndpoint
from langchain.chains.qa_with_sources import load_qa_with_sources_chain

os.environ["QIANFAN_AK"] = "API_KEY"
os.environ["QIANFAN_SK"] = "SECRET_KEY"

# 定义URL
WEB_URL = "https://zhuanlan.zhihu.com/p/89354916"
# 使用WebBaseLoader加载HTML
loader = WebBaseLoader(WEB_URL)
docs = loader.load()
# 加载千帆向量模型
embeddings = QianfanEmbeddingsEndpoint()
# 加载递归字符文本分割器
text_splitter = RecursiveCharacterTextSplitter(chunk_size = 384, chunk_overlap = 0, separators=["\n\n", "\n", " ", "", "。", ","])
# 导入文本
documents = text_splitter.split_documents(docs)

# 存入向量库
vector_db = Milvus.from_documents(
    documents,
    QianfanEmbeddingsEndpoint(),
    connection_args ={"host": "127.0.0.1", "port": default_server.listen_port},
    collection_name="test_history",
)

query = "周武王建周是哪年"
vec_res = vector_db.similarity_search(query)

# 加载千帆模型
llm = QianfanLLMEndpoint(
    streaming=True,
    model="ERNIE-Bot-turbo",
    endpoint="eb-instant",
)

# RAG
chain = load_qa_with_sources_chain(llm=llm, chain_type="refine", return_intermediate_steps=True)
res = chain.invoke({"input_documents": vec_res, "question": query}, return_only_outputs=True)
print(res)

如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

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

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

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

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

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

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

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

在这里插入图片描述

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

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

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

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

在这里插入图片描述

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

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

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值