cd d:\agentlearning\lqq-agent-study\02_RAG_study
python view_chunks.py
然后选择选项1查看数据库内容
选择选项2或3进行检索测试
创建一个Python脚本或使用Jupyter Notebook:
import os
from dotenv import load_dotenv
from langchain_community.embeddings import DashScopeEmbeddings
from langchain_community.vectorstores import Chroma
# 加载环境变量
load_dotenv()
# 初始化Embedding模型
embedding_model = DashScopeEmbeddings(
model="text-embedding-v3",
dashscope_api_key=os.getenv("DASHSCOPE_API_KEY", "")
)
# 加载向量数据库
vectorstore = Chroma(
persist_directory="./car_info_knowledge_db", # 你的数据库路径
embedding_function=embedding_model
)
# 获取所有文档
result = vectorstore.get()
documents = result.get('documents', [])
metadatas = result.get('metadatas', [])
# 打印统计信息
print(f"总块数: {len(documents)}")
print(f"总字符数: {sum(len(doc) for doc in documents):,}")
# 查看前10个块
for i in range(min(10, len(documents))):
print(f"\n块 #{i+1}")
print(f"页码: {metadatas[i].get('page', 'N/A')}")
print(f"大小: {len(documents[i])} 字符")
print(f"内容: {documents[i][:150]}...")
# 测试检索
query = "你的问题"
results = vectorstore.similarity_search_with_score(query, k=3)
for i, (doc, score) in enumerate(results):
print(f"结果 #{i+1} (相似度: {score:.4f})")
print(f"页码: {doc.metadata.get('page', 'N/A')}")
print(f"内容: {doc.page_content[:200]}...")
在 rag_test.ipynb 中添加以下代码:
# 单元格1:加载库
from langchain_community.embeddings import DashScopeEmbeddings
from langchain_community.vectorstores import Chroma
import os
# 单元格2:加载数据库
embedding = DashScopeEmbeddings(
model="text-embedding-v3",
dashscope_api_key=os.getenv("DASHSCOPE_API_KEY")
)
vectordb = Chroma(
persist_directory="./car_info_knowledge_db",
embedding_function=embedding
)
# 单元格3:查看统计
result = vectordb.get()
docs = result['documents']
print(f"总块数: {len(docs)}")
print(f"平均块大小: {sum(len(d) for d in docs) / len(docs):.1f} 字符")
# 单元格4:查看具体块
for i in range(min(5, len(docs))):
print(f"\n块 #{i+1} ({len(docs[i])}字符)")
print(docs[i][:200])
print("-" * 60)
# 单元格5:测试检索
query = "HDC系统"
results = vectordb.similarity_search_with_score(query, k=3)
for doc, score in results:
print(f"相似度: {score:.4f}")
print(doc.page_content[:150])
print("-" * 60)
A: 默认存储在 ./car_info_knowledge_db 或 ./investment_knowledge_db 目录
A: 可以。修改 chunk_size 和 chunk_overlap 后,重新构建数据库,然后用这些工具查看
A: 分数越小越相似,0表示完全匹配。余弦距离。
A: 使用 vectorstore.get() 获取所有数据后,可以保存为JSON或其他格式:
import json
result = vectorstore.get()
with open('chunks_export.json', 'w', encoding='utf-8') as f:
json.dump({
'documents': result['documents'],
'metadatas': result['metadatas']
}, f, ensure_ascii=False, indent=2)