feat: 准备实现知识库管理的功能
This commit is contained in:
@@ -21,7 +21,7 @@ def add_knowledge_route(app):
|
|||||||
Document(
|
Document(
|
||||||
text=text,
|
text=text,
|
||||||
id=id_list[index],
|
id=id_list[index],
|
||||||
metadata={"kb_id": "abc"}
|
metadata={"kb_id": "cde"}
|
||||||
)
|
)
|
||||||
for index, text in enumerate(text_list)
|
for index, text in enumerate(text_list)
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import asyncio
|
|||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from llama_index.core import Document, VectorStoreIndex
|
from llama_index.core import Document, VectorStoreIndex
|
||||||
|
from llama_index.core.vector_stores import MetadataFilters, MetadataFilter, FilterOperator
|
||||||
from llama_index.vector_stores.milvus import MilvusVectorStore
|
from llama_index.vector_stores.milvus import MilvusVectorStore
|
||||||
|
|
||||||
from app.config.env import env
|
from app.config.env import env
|
||||||
@@ -65,24 +66,29 @@ class MilvusService:
|
|||||||
vector_store=await self.get_vector_store(),
|
vector_store=await self.get_vector_store(),
|
||||||
embed_model=self.embeddings,
|
embed_model=self.embeddings,
|
||||||
)
|
)
|
||||||
query_engine = vector_index.as_query_engine(
|
|
||||||
streaming=False,
|
filters = MetadataFilters(filters=[MetadataFilter(key="kb_id", value="abc", operator=FilterOperator.EQ)])
|
||||||
similarity_top_k=top_k, # 这里正确使用top_k参数
|
|
||||||
llm=create_llama_index_llm()
|
# query_engine = vector_index.as_query_engine(
|
||||||
)
|
# streaming=False,
|
||||||
|
# similarity_top_k=top_k, # 这里正确使用top_k参数
|
||||||
|
# llm=create_llama_index_llm()
|
||||||
|
# )
|
||||||
|
retriever = vector_index.as_retriever(filters=filters, similarity_top_k=5)
|
||||||
|
result_nodes = await retriever.aretrieve(query)
|
||||||
|
|
||||||
# 异步执行查询
|
# 异步执行查询
|
||||||
response = await query_engine.aquery(query)
|
# response = await query_engine.aquery(query)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"answer": str(response),
|
# "answer": str(response),
|
||||||
"sources": [
|
"sources": [
|
||||||
{
|
{
|
||||||
"text": node.node.text,
|
"text": node.node.text,
|
||||||
"metadata": node.node.metadata,
|
"metadata": node.node.metadata,
|
||||||
"score": node.score
|
"score": node.score
|
||||||
}
|
}
|
||||||
for node in response.source_nodes
|
for node in result_nodes
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user