[ PROMPT_NODE_22212 ]
Agents Langchain 集成
[ SKILL_DOCUMENTATION ]
# LangChain 集成指南
本指南涵盖了向量数据库集成、LangSmith 可观测性以及部署相关内容。
## 向量数据库集成
### Chroma (本地、开源)
python
from langchain_chroma import Chroma
from langchain_openai import OpenAIEmbeddings
# 创建向量数据库
vectorstore = Chroma.from_documents(
documents=docs,
embedding=OpenAIEmbeddings(),
persist_directory="./chroma_db"
)
# 加载现有数据库
vectorstore = Chroma(
persist_directory="./chroma_db",
embedding_function=OpenAIEmbeddings()
)
# 增量添加文档
vectorstore.add_documents([new_doc1, new_doc2])
# 删除文档
vectorstore.delete(ids=["doc1", "doc2"])
### Pinecone (云端、可扩展)
python
from langchain_pinecone import PineconeVectorStore
import pinecone
# 初始化 Pinecone
pinecone.init(api_key="your-api-key", environment="us-west1-gcp")
# 创建索引(仅需一次)
pinecone.create_index("my-index", dimension=1536, metric="cosine")
# 创建向量数据库
vectorstore = PineconeVectorStore.from_documents(
documents=docs,
embedding=OpenAIEmbeddings(),
index_name="my-index"
)
# 使用元数据过滤进行查询
results = vectorstore.similarity_search(
"Python tutorials",
k=4,
filter={"category": "beginner"}
)
### FAISS (快速相似度搜索)
python
from langchain_community.vectorstores import FAISS
# 创建 FAISS 索引
vectorstore = FAISS.from_documents(docs, OpenAIEmbeddings())
# 保存到磁盘
vectorstore.save_local("./faiss_index")
# 从磁盘加载
vectorstore = FAISS.load_local(
"./faiss_index",
OpenAIEmbeddings(),
allow_dangerous_deserialization=True
)
# 合并多个索引
vectorstore1 = FAISS.load_local("./index1", embeddings)
vectorstore2 = FAISS.load_local("./index2", embeddings)
vectorstore1.merge_from(vectorstore2)
### Weaviate (生产级、原生机器学习)
python
from langchain_weaviate import WeaviateVectorStore
import weaviate
# 连接 Weaviate
client = weaviate.Client("http://baguaai.com")
# 创建向量数据库
vectorstore = WeaviateVectorStore.from_documents(
documents=docs,
embedding=OpenAIEmbeddings(),
client=client,
index_name="LangChain"
)
# 混合搜索 (向量 + 关键词)
results = vectorstore.similarity_search(
"Python async",
k=4,
alpha=0.5 # 0=关键词, 1=向量, 0.5=混合
)
### Qdrant (快速、开源)
python
from langchain_qdrant import QdrantVectorStore
from qdrant_client import QdrantClient
# 连接 Qdrant
client = QdrantClient(host="localhost", port=6333)
# 创建向量数据库
vectorstore = QdrantVectorStore.from_documents(
documents=docs,
embedding=OpenAIEmbeddings(),
collection_name="my_documents",
client=client
)
## LangSmith 可观测性
### 启用追踪 (Tracing)
python
import os
# 设置环境变量
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = "your-langsmith-api-key"
os.environ["LANGCHAIN_PROJECT"] = "my-project"
# 所有链调用将自动被追踪