This commit is contained in:
parent
bca56cc457
commit
f992ca30c6
|
|
@ -3,7 +3,7 @@ from pydantic import BaseModel
|
||||||
from app.core.embedding import embedder
|
from app.core.embedding import embedder
|
||||||
from app.core.config import settings
|
from app.core.config import settings
|
||||||
from llama_index.vector_stores.faiss import FaissVectorStore
|
from llama_index.vector_stores.faiss import FaissVectorStore
|
||||||
from llama_index import VectorStoreIndex, ServiceContext
|
from llama_index import VectorStoreIndex, ServiceContext, StorageContext
|
||||||
import os
|
import os
|
||||||
import logging
|
import logging
|
||||||
import faiss # 引入faiss
|
import faiss # 引入faiss
|
||||||
|
|
@ -44,15 +44,19 @@ def search_docs(request: QueryRequest, user_id: str = Query(..., description="
|
||||||
vector_store = FaissVectorStore(faiss_index=faiss_index)
|
vector_store = FaissVectorStore(faiss_index=faiss_index)
|
||||||
logger.info("FaissVectorStore created successfully.")
|
logger.info("FaissVectorStore created successfully.")
|
||||||
|
|
||||||
|
# 创建 StorageContext 实例(确保同时加载文本和向量)
|
||||||
|
storage_context = StorageContext.from_defaults(persist_dir=index_path, vector_store=vector_store)
|
||||||
|
logger.info("Storage context created successfully.")
|
||||||
|
|
||||||
# 创建 ServiceContext 实例
|
# 创建 ServiceContext 实例
|
||||||
service_context = ServiceContext.from_defaults(embed_model=embedder, llm=None)
|
service_context = ServiceContext.from_defaults(embed_model=embedder, llm=None)
|
||||||
logger.info("Service context created successfully.")
|
logger.info("Service context created successfully.")
|
||||||
|
|
||||||
# 创建 VectorStoreIndex
|
# 创建 VectorStoreIndex 并加载文本与向量
|
||||||
index = VectorStoreIndex.from_vector_store(vector_store, service_context=service_context)
|
index = VectorStoreIndex.from_storage_context(storage_context)
|
||||||
logger.info("VectorStoreIndex created successfully.")
|
logger.info("VectorStoreIndex created successfully.")
|
||||||
|
|
||||||
# 检索结果(真实文本)
|
# 检索结果(包含文本)
|
||||||
retriever = index.as_retriever(similarity_top_k=settings.TOP_K)
|
retriever = index.as_retriever(similarity_top_k=settings.TOP_K)
|
||||||
logger.info(f"Retrieving top {settings.TOP_K} results for query: {request.query}")
|
logger.info(f"Retrieving top {settings.TOP_K} results for query: {request.query}")
|
||||||
nodes = retriever.retrieve(request.query)
|
nodes = retriever.retrieve(request.query)
|
||||||
|
|
@ -62,7 +66,7 @@ def search_docs(request: QueryRequest, user_id: str = Query(..., description="
|
||||||
"user_id": user_id,
|
"user_id": user_id,
|
||||||
"query": request.query,
|
"query": request.query,
|
||||||
"results": [
|
"results": [
|
||||||
{"score": float(node.score or 0), "text": node.get_content()}
|
{"score": float(node.score or 0), "text": node.get_content()} # 确保从 Node 中获取文本
|
||||||
for node in nodes
|
for node in nodes
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue