29 lines
960 B
Python
29 lines
960 B
Python
"""
|
|
向量化
|
|
"""
|
|
from app.chat_qa_query.query_qa_state import QueryQAState
|
|
from app.client.embedding_client_manager import embedding_client
|
|
from app.repository.milvus.message_qa_repository import QARepository
|
|
from app.core.log import logger
|
|
|
|
|
|
async def search_embed(state:QueryQAState) :
|
|
logger.info("search_embed")
|
|
rewritten_query = state.get("rewritten_query", "")
|
|
original_query = state.get("original_query", "")
|
|
|
|
batch_embeddings = await embedding_client.aembed_query(rewritten_query)
|
|
qa_repository = QARepository()
|
|
|
|
result = await qa_repository.search_qa(query_vector=batch_embeddings, top_k=3)
|
|
logger.info(f"原始问题:{original_query},改写后的问题:{rewritten_query},匹配结果:{result}")
|
|
if result:
|
|
question = result[0]["question"]
|
|
answer = result[0]["answer"]
|
|
|
|
qa_pairs={
|
|
"question": question,
|
|
"answer": answer,
|
|
}
|
|
return {"qa_pairs": qa_pairs}
|
|
return {} |