动易网站 首页模板修改住建蓉e办官网
2026/4/6 4:10:00 网站建设 项目流程
动易网站 首页模板修改,住建蓉e办官网,免费设计装修效果图软件下载,营销型网站开发推广本文详细记录了Milvus容器反复重启、端口拒绝等问题的解决过程#xff0c;并成功实现LangChain RAG检索系统。文章介绍了MilvusLangChainOllama的完整架构配置#xff0c;提供了从环境搭建到代码实现的详细步骤#xff0c;解决了开发者在本地构建RAG系统时常见的典型问题。适…本文详细记录了Milvus容器反复重启、端口拒绝等问题的解决过程并成功实现LangChain RAG检索系统。文章介绍了MilvusLangChainOllama的完整架构配置提供了从环境搭建到代码实现的详细步骤解决了开发者在本地构建RAG系统时常见的典型问题。适用于本地RAG、私有大模型和知识库系统等场景是开发者的实用参考资料。本文记录一次从 Milvus 容器反复重启、端口拒绝到最终稳定运行并实现 LangChain RAG 成功检索的完整实战过程。适用于本地 RAG、私有大模型、知识库系统等场景。一、背景与问题在本地构建 RAGRetrieval-Augmented Generation时开发者常遇到以下典型问题telnet 19530 连接被拒绝Milvus 容器反复 Restarting (1)pymilvus 能连上但 LangChain 查不到数据不清楚 Milvus 中的「tag / metadata」到底存在哪里本文基于 Milvus 2.4 LangChain OllamaQwen bge-m3逐步解决上述问题。二、整体架构LangChain │ ├─ Ollama Embedding (bge-m3) │ ├─ Milvus Vector Store │ ├─ etcd │ ├─ minio │ └─ standalone │ └─ Ollama LLM (qwen2.5)Python 3.9 / 3.10 / 3.11 均可支持。pip install -U \ langchain \ langchain-core \ langchain-community \ langchain-text-splitters \ langchain-ollama \ pymilvus \ faiss-cpu三、Milvus Docker Compose稳定版注意Milvus standalone 必须依赖 etcd minio不能直接使用docker run milvusdb/milvus否则 19530 端口不会监听。docker-compose.ymlversion: 3.5services: rag-etcd: container_name: rag-milvus-etcd image: quay.io/coreos/etcd:v3.5.5 volumes: - ./rag-volumes/etcd:/etcd command: etcd -advertise-client-urlshttp://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd rag-minio: container_name: rag-milvus-minio image: minio/minio:RELEASE.2023-03-20T20-16-18Z environment: MINIO_ACCESS_KEY: minioadmin MINIO_SECRET_KEY: minioadmin ports: - 19000:9000 - 19001:9001 volumes: - ./rag-volumes/minio:/minio_data command: minio server /minio_data --console-address :9001 rag-milvus: container_name: rag-milvus-standalone image: milvusdb/milvus:v2.4.0 command: [milvus, run, standalone] environment: ETCD_ENDPOINTS: rag-etcd:2379 MINIO_ADDRESS: rag-minio:9000 volumes: - ./rag-volumes/milvus:/var/lib/milvus ports: - 19530:19530 - 9091:9091 depends_on: - rag-etcd - rag-minionetworks: default: name: rag-milvus-net启动命令docker compose up -d四、验证 Milvus 是否正常telnet 验证端口telnet 127.0.0.1 19530若看到如下输出Connected to 127.0.0.1.HTTP/1.1 400 Bad Request这是正常现象因为 19530 是 gRPC 端口并非 HTTP 接口。Python 连接 Milvusfrom pymilvus import connections, utility, Collectionconnections.connect( host127.0.0.1, port19530)print(connected:, connections.has_connection(default))print(collections:, utility.list_collections())五、理解 Milvus 里的 “tag / metadata”Milvus 没有内置 tag 概念。所谓的 tag本质是 Collection schema 中的 scalar 字段。查看 collection schemacol Collection(rag_qwen_prod)print(col.schema)典型结构如下id (INT64, primary)vector (FLOAT_VECTOR)text (VARCHAR)source (VARCHAR)category (VARCHAR)其中source/category即为 RAG 中的 tag。六、LangChain Ollama Milvus 实战Embeddingbge-m3from langchain_ollama import OllamaEmbeddingsembeddings OllamaEmbeddings( modelbge-m3, base_urlhttp://192.168.31.161:11434)构造文档from langchain_core.documents import Documentdocs [ Document(page_contentRAG 是检索增强生成), Document(page_contentMilvus 是生产级向量数据库), Document(page_contentQwen2.5 是高质量中文大模型),]文本切分from langchain_text_splitters import RecursiveCharacterTextSplittersplitter RecursiveCharacterTextSplitter( chunk_size300, chunk_overlap50)docs splitter.split_documents(docs)写入 Milvusfrom langchain_community.vectorstores import Milvusvectorstore Milvus.from_documents( docs, embeddingembeddings, collection_namerag_qwen_prod, connection_args{ host: localhost, port: 19530 })Retrieverretriever vectorstore.as_retriever( search_kwargs{k: 3})LLMQwen2.5from langchain_ollama import ChatOllamallm ChatOllama( modelqwen2.5:7b, temperature0)Prompt LCEL RAG Chainfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_core.runnables import RunnablePassthroughprompt ChatPromptTemplate.from_messages([ (system, 你只能基于上下文回答问题不允许编造), (human, 上下文\n{context}\n\n问题{question})])rag_chain ( { context: retriever, question: RunnablePassthrough() } | prompt | llm)查询验证result rag_chain.invoke(什么是 Milvus)print(result.content)输出示例Milvus 是一个生产级向量数据库用于高效存储和检索向量数据。RAG 生效。七、完整代码与常见问题总结from langchain_ollama import ChatOllama, OllamaEmbeddingsfrom langchain_community.vectorstores import Milvusfrom langchain_text_splitters import RecursiveCharacterTextSplitterfrom langchain_core.documents import Documentfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_core.runnables import RunnablePassthrough# 1. Embeddingembeddings OllamaEmbeddings( modelbge-m3, base_urlhttp://192.168.31.161:11434)# 2. 文档docs [ Document(page_contentRAG 是检索增强生成), Document(page_contentMilvus 是生产级向量数据库), Document(page_contentQwen2.5 是高质量中文大模型),]# 3. 切分splitter RecursiveCharacterTextSplitter( chunk_size300, chunk_overlap50)docs splitter.split_documents(docs)# 4. Milvus Vector Storevectorstore Milvus.from_documents( docs, embeddingembeddings, collection_namerag_qwen_prod, connection_args{ host: localhost, port: 19530 })retriever vectorstore.as_retriever(search_kwargs{k: 3})# 5. LLMllm ChatOllama( modelqwen2.5:7b, temperature0)# 6. Promptprompt ChatPromptTemplate.from_messages([ (system, 你只能基于上下文回答问题不允许编造), (human, 上下文\n{context}\n\n问题{question})])# 7. LCEL RAG Chainrag_chain ( { context: retriever, question: RunnablePassthrough() } | prompt | llm)# 8. Queryresult rag_chain.invoke(什么是 Milvus)print(result.content)问题原因19530 连接被拒绝直接 docker run Milvus容器重启缺少 etcd / miniotelnet 返回 400正常gRPC查不到 tagschema 没定义 metadataLangChain 无结果embedding 不一致八、下一步可以做什么多 tag / 多租户 RAGexpr 过滤category opsMilvus IVF / HNSW 调优Streaming RAGWeb UI API 服务化九、结语Milvus LangChain Ollama 是目前本地 RAG 的黄金组合Milvus性能与扩展性Ollama本地模型自由LangChain链路清晰、可组合如果你已经走到这一步说明你已经不是“入门玩家”了。如何学习AI大模型如果你对AI大模型入门感兴趣那么你需要的话可以点击这里大模型重磅福利入门进阶全套104G学习资源包免费分享这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】这是一份大模型从零基础到进阶的学习路线大纲全览小伙伴们记得点个收藏第一阶段从大模型系统设计入手讲解大模型的主要方法第二阶段在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用第三阶段大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统第四阶段大模型知识库应用开发以LangChain框架为例构建物流行业咨询智能问答系统第五阶段大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型第六阶段以SD多模态大模型为主搭建了文生图小程序案例第七阶段以大模型平台应用与开发为主通过星火大模型文心大模型等成熟大模型构建大模型行业应用。100套AI大模型商业化落地方案大模型全套视频教程200本大模型PDF书籍学会后的收获• 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力• 能够利用大模型解决相关实际项目需求 大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求• 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能 学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握• 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力 大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。LLM面试题合集大模型产品经理资源合集大模型项目实战合集获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询