微信扫码
添加专属顾问
我要投稿
01
02
03
04
05
服务名称 | 您可以自定义。 | |
模型来源 | 使用默认的开源公共模型。 | |
通常选择通义千问7B。例如,Qwen1.5-7b。 | ||
实例数 | 使用默认的1。 | |
按需选择GPU资源配置。例如,ml.gu7i.c16m30.1-gu30。 | ||
Milvus实例的内网地址。您可以在Milvus实例的实例详情页面查看。 | ||
Milvus实例的Proxy Port。您可以在Milvus实例的实例详情页面查看。 | ||
配置为root。 | ||
配置为数据库名称,例如default。创建Milvus实例时,系统会默认创建数据库default,您也可以手动创建新的数据库,具体操作,请参见管理Databases【https://help.aliyun.com/zh/milvus/user-guide/manage-databases】。 | ||
输入新的Collection名称或已存在的Collection名称。对于已存在的Collection,Collection结构应符合PAI-RAG要求,例如您可以填写之前通过EAS部署RAG服务时自动创建的Collection。 | ||
VPC | 创建阿里云Milvus实例选择时的VPC、交换机和安全组。您可以在Milvus实例的实例详情页面查看。 | |
交换机 | ||
安全组名称 | ||
pip3 install pymilvus langchain dashscope beautifulsoup4
vim milvusr-llm.py
from langchain_community.document_loaders import WebBaseLoaderfrom langchain.text_splitter import RecursiveCharacterTextSplitterfrom langchain.vectorstores.milvus import Milvusfrom langchain.schema.runnable import RunnablePassthroughfrom langchain.prompts import PromptTemplatefrom langchain_community.embeddings import DashScopeEmbeddingsfrom langchain_community.llms.pai_eas_endpoint import PaiEasEndpoint# 设置Milvus Collection名称。COLLECTION_NAME = 'doc_qa_db'# 设置向量维度。DIMENSION = 768loader = WebBaseLoader(['https://milvus.io/docs/overview.md','https://milvus.io/docs/release_notes.md','https://milvus.io/docs/architecture_overview.md','https://milvus.io/docs/four_layers.md','https://milvus.io/docs/main_components.md','https://milvus.io/docs/data_processing.md','https://milvus.io/docs/bitset.md','https://milvus.io/docs/boolean.md','https://milvus.io/docs/consistency.md','https://milvus.io/docs/coordinator_ha.md','https://milvus.io/docs/replica.md','https://milvus.io/docs/knowhere.md','https://milvus.io/docs/schema.md','https://milvus.io/docs/dynamic_schema.md','https://milvus.io/docs/json_data_type.md','https://milvus.io/docs/metric.md','https://milvus.io/docs/partition_key.md','https://milvus.io/docs/multi_tenancy.md','https://milvus.io/docs/timestamp.md','https://milvus.io/docs/users_and_roles.md','https://milvus.io/docs/index.md','https://milvus.io/docs/disk_index.md','https://milvus.io/docs/scalar_index.md','https://milvus.io/docs/performance_faq.md','https://milvus.io/docs/product_faq.md','https://milvus.io/docs/operational_faq.md','https://milvus.io/docs/troubleshooting.md',])docs = loader.load()text_splitter = RecursiveCharacterTextSplitter(chunk_size=1024, chunk_overlap=0)# 使用LangChain将输入文档安照chunk_size切分all_splits = text_splitter.split_documents(docs)# 设置embedding模型为DashScope(可以替换成自己模型)。embeddings = DashScopeEmbeddings(model="text-embedding-v2", dashscope_api_key="your_api_key")# 创建connection,host为阿里云Milvus的访问域名。connection_args = {"host": "c-xxxx.milvus.aliyuncs.com", "port": "19530", "user": "your_user", "password": "your_password"}# 创建Collectionvector_store = Milvus(embedding_function=embeddings,connection_args=connection_args,collection_name=COLLECTION_NAME,drop_old=True,).from_documents(all_splits,embedding=embeddings,collection_name=COLLECTION_NAME,connection_args=connection_args,)# 利用Milvus向量数据库进行相似性检索。query = "What are the main components of Milvus?"docs = vector_store.similarity_search(query)print(len(docs))# 声明LLM 模型为PAI EAS(可以替换成自己模型)。llm = PaiEasEndpoint(eas_service_url="your_pai_eas_url",eas_service_token="your_token",)# 将上述相似性检索的结果作为retriever,提出问题输入到LLM之后,获取检索增强之后的回答。retriever = vector_store.as_retriever()template = """Use the following pieces of context to answer the question at the end.If you don't know the answer, just say that you don't know, don't try to make up an answer.Use three sentences maximum and keep the answer as concise as possible.Always say "thanks for asking!" at the end of the answer.{context}Question: {question}Helpful Answer:"""rag_prompt = PromptTemplate.from_template(template)rag_chain = ({"context": retriever, "question": RunnablePassthrough()}| rag_prompt| llm)print(rag_chain.invoke("Explain IVF_FLAT in Milvus."))
设置Milvus Collection名称,您可以自定义。 | |
本文示例使用的Embedding模型(text-embedding-v2),您也可以替换成您实际使用的模型。有关Embedding的更多信息,请参见Embedding(https://help.aliyun.com/zh/model-studio/user-guide/embedding)。 | |
dashscope_api_key | 百炼的API-KEY。 |
| |
配置为步骤1中获取的服务访问地址。本文示例声明LLM模型为PAI(EAS),您也可以替换成您实际使用的模型。 | |
eas_service_token | 配置为步骤1中获取的服务Token。 |
python3 milvusr-llm.py
4IVF_FLAT is a type of index in Milvus that divides vector data into nlist cluster units and compares distances between the target input vector and the center of each cluster. It uses a smaller number of clusters than IVF_FLAT, which means it may have slightly higher query time but also requires less memory. The encoded data stored in each unit is consistent with the original data.
06
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-12-04
Agentic RAG这样用LangChain解决复杂问题
2025-12-01
Deep Agent 进化论:基于文件系统的 Context Engineering 深度解析
2025-11-27
langgraph 1.0.4 最新发布:功能优化与修复详解
2025-11-25
LangChain 最新agent框架deepagents测评:长任务友好,高可控
2025-11-25
被 LangChain 全家桶搞晕了?LangGraph、LangSmith、LangFlow 一文读懂
2025-11-21
如何用 LangGraph 构建高效的 Agentic 系统
2025-11-19
LangChain v1.0 模型选型:静态还是动态?一文看懂 Agent 的正确打开方式
2025-11-18
LangChain 1.0 变革
2025-09-13
2025-09-21
2025-11-03
2025-10-23
2025-10-19
2025-10-31
2025-09-12
2025-11-06
2025-11-05
2025-09-19
2025-11-03
2025-10-29
2025-07-14
2025-07-13
2025-07-05
2025-06-26
2025-06-13
2025-05-21