Langchain 集成 Milvus

Langchain 集成 Milvus

  • [1. 安装 Docker](#1. 安装 Docker)
  • [2. 部署 Milvus](#2. 部署 Milvus)
  • 3.
  • [4. Langchain 集成 Milvus](#4. Langchain 集成 Milvus)

1. 安装 Docker

refer: https://docs.docker.com/engine/install/centos/

Milvus 会以容器方式启动,所以先安装 Docker。(本示例使用的是 Alma Linux 9.2)

卸载旧版本,

复制代码
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

设置存储库,

复制代码
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装 Docker 引擎,

复制代码
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动 Docker,

复制代码
sudo systemctl start docker

通过运行 hello-world 映像来验证 Docker 引擎安装是否成功,

复制代码
sudo docker run hello-world

2. 部署 Milvus

refer: https://milvus.io/docs/install_standalone-docker.md

使用 Docker Compose 安装 Milvus 单机版。

下载 YAML 文件,

复制代码
wget https://github.com/milvus-io/milvus/releases/download/v2.2.12/milvus-standalone-docker-compose.yml -O docker-compose.yml

启动 Milvus,

复制代码
sudo docker compose up -d

现在检查容器是否已启动并正在运行,

复制代码
sudo docker compose ps

Milvus Standalone 启动后,将会运行三个 docker 容器,包括 Milvus Standalone 服务及其两个依赖项。

复制代码
      Name                     Command                  State                            Ports
--------------------------------------------------------------------------------------------------------------------
milvus-etcd         etcd -advertise-client-url ...   Up             2379/tcp, 2380/tcp
milvus-minio        /usr/bin/docker-entrypoint ...   Up (healthy)   9000/tcp
milvus-standalone   /tini -- milvus run standalone   Up             0.0.0.0:19530->19530/tcp, 0.0.0.0:9091->9091/tcp

连接到 Milvus,

复制代码
docker port milvus-standalone 19530/tcp

您可以使用该命令返回的本地 IP 地址和端口号连接到 Milvus 集群。

(可选)停止 Milvus,

复制代码
sudo docker compose down

(可选)要在停止 Milvus 后删除数据,请运行,

复制代码
sudo rm -rf  volumes

3.

修改 docker-compose.yml 文件,并将以下内容添加到服务块中,

复制代码
  attu:
    container_name: attu
    image: zilliz/attu:v2.2.6
    environment:
      MILVUS_URL: milvus-standalone:19530
    ports:
      - "8000:3000"
    depends_on:
      - "standalone"

运行以下命令启动 Milvus 和 Attu,

复制代码
sudo docker compose up -d

在浏览器中访问 http://{ your machine IP }:8000 ,然后单击"连接"进入Attu服务。我们还支持 TLS 连接、用户名和密码。

4. Langchain 集成 Milvus

Milvus 是一个数据库,用于存储、索引和管理由深度神经网络和其他机器学习 (ML) 模型生成的大量嵌入向量。

本笔记本展示了如何使用 Milvus 矢量数据库相关功能。

要运行,您应该启动并运行一个 Milvus 实例。

示例代码,

复制代码
# !pip install pymilvus

import os
import getpass

# os.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API Key:")
os.environ["COHERE_API_KEY"] = getpass.getpass("Cohere API Key:")

# from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.embeddings.cohere import CohereEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Milvus
from langchain.document_loaders import TextLoader

from langchain.document_loaders import TextLoader

loader = TextLoader("./state_of_the_union_en.txt", encoding="utf-8")
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)

# embeddings = OpenAIEmbeddings()
embeddings = CohereEmbeddings()

vector_db = Milvus.from_documents(
    docs,
    embeddings,
    # connection_args={"host": "127.0.0.1", "port": "19530"},
    connection_args={"host": "192.168.31.92", "port": "19530"},
)

query = "What did the president say about Ketanji Brown Jackson"
docs = vector_db.similarity_search(query)

docs[0].page_content

输出结果,

复制代码
'Tonight. I call on the Senate to: Pass the Freedom to Vote Act. Pass the John Lewis Voting Rights Act. And while you're at it, pass the Disclose Act so Americans can know who is funding our elections. \n\nTonight, I'd like to honor someone who has dedicated his life to serve this country: Justice Stephen Breyer---an Army veteran, Constitutional scholar, and retiring Justice of the United States Supreme Court. Justice Breyer, thank you for your service. \n\nOne of the most serious constitutional responsibilities a President has is nominating someone to serve on the United States Supreme Court. \n\nAnd I did that 4 days ago, when I nominated Circuit Court of Appeals Judge Ketanji Brown Jackson. One of our nation's top legal minds, who will continue Justice Breyer's legacy of excellence.'

完结!

相关推荐
赵广陆1 小时前
企业实战:主体识别
langchain·pdf·langgraph
Tango21003 小时前
刚换到 Codex 不顺手?用 3 层配置解决 4 个常见问题
gpt·chatgpt·claude
AI英德西牛仔3 小时前
豆包导出 pdf 颜色不一样怎么办,选用 AI 导出鸭优化文档导出,结合行业白皮书数据解析色彩失真成因
人工智能·ai·chatgpt·pdf·deepseek·ai导出鸭
我不是码神665 小时前
Windows 下 Codex CLI 报“拒绝访问 (os error 5)”:先查入口,再查配置
后端·chatgpt
猿小猴子6 小时前
主流 AGENT 实战教程「OpenCodex」与「ChatGPT Work」与「Codex Record & Replay」介绍
人工智能·ai·chatgpt·codex·minimax·deepseek·opencodex
李妍.6 小时前
DeepSeek Harness 从安装到使用:一站式 AI 开发工具指南
chatgpt·prompt·aigc·agi
小马过河R7 小时前
Graph Engineering 深度解析:模型越强,越需要给它画好“地图”
人工智能·langchain·graph·ai工程化·harness·驾驭工程
jyOverQ7 小时前
LangGraph 记忆管理详解:短期记忆、长期记忆与 Runtime Context
python·langchain
做前端的娜娜子8 小时前
文本切片与召回(Chunk、Overlap 到混合检索)学习笔记
langchain·openai·掘金·金石计划
全栈弄潮儿8 小时前
4 个新手就能直接套用的 AI 编程提示词模板
chatgpt·openai·ai编程