| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- """简单查看数据库内容"""
- import os
- import sys
- from dotenv import load_dotenv
- # 加载环境变量
- load_dotenv()
- # 切换到正确的工作目录
- os.chdir(r"d:\agentlearning\lqq-agent-study\02_RAG_study")
- from langchain_community.embeddings import DashScopeEmbeddings
- from langchain_community.vectorstores import Chroma
- # 初始化
- embedding_model = DashScopeEmbeddings(
- model="text-embedding-v3",
- dashscope_api_key=os.getenv("DASHSCOPE_API_KEY", "")
- )
- # 加载数据库
- db_path = "./car_info_knowledge_db"
- print(f"加载数据库: {db_path}")
- if not os.path.exists(db_path):
- print(f"数据库不存在!")
- sys.exit(1)
- vectorstore = Chroma(
- persist_directory=db_path,
- embedding_function=embedding_model
- )
- # 获取所有数据
- result = vectorstore.get()
- documents = result.get('documents', [])
- metadatas = result.get('metadatas', [])
- print(f"\n总块数: {len(documents)}")
- if documents:
- # 统计
- sizes = [len(doc) for doc in documents]
- print(f"总字符数: {sum(sizes):,}")
- print(f"平均块大小: {sum(sizes)/len(sizes):.1f}")
- print(f"最大块: {max(sizes)}")
- print(f"最小块: {min(sizes)}")
-
- # 显示前10个块
- print("\n" + "=" * 80)
- print("前10个块的内容:")
- print("=" * 80)
-
- for i in range(min(10, len(documents))):
- doc = documents[i]
- metadata = metadatas[i] if i < len(metadatas) else {}
-
- print(f"\n【块 #{i+1}】")
- print(f"页码: {metadata.get('page', 'N/A')}")
- print(f"大小: {len(doc)} 字符")
- print(f"内容: {doc[:150].replace(chr(10), ' ')}...")
- print("-" * 80)
-
- # 测试检索
- print("\n\n测试检索:")
- query = "HDC系统"
- print(f"查询: {query}")
-
- results = vectorstore.similarity_search_with_score(query, k=3)
-
- for i, (doc, score) in enumerate(results):
- print(f"\n结果 #{i+1} (相似度: {score:.4f})")
- print(f"内容: {doc.page_content[:150]}...")
|