fix: results by search not order by similarity
This commit is contained in:
@@ -174,6 +174,9 @@ class PeopleStore:
|
|||||||
people_orms = session.query(PeopleORM).filter(PeopleORM.id.in_(people_id_list)).filter(
|
people_orms = session.query(PeopleORM).filter(PeopleORM.id.in_(people_id_list)).filter(
|
||||||
PeopleORM.deleted_at.is_(None)
|
PeopleORM.deleted_at.is_(None)
|
||||||
).all()
|
).all()
|
||||||
|
# 根据 people_id_list 的顺序对查询结果进行排序
|
||||||
|
order_map = {pid: idx for idx, pid in enumerate(people_id_list)}
|
||||||
|
people_orms.sort(key=lambda orm: order_map.get(orm.id, len(order_map)))
|
||||||
for people_orm in people_orms:
|
for people_orm in people_orms:
|
||||||
people = people_orm.to_people()
|
people = people_orm.to_people()
|
||||||
peoples.append(people)
|
peoples.append(people)
|
||||||
|
|||||||
@@ -65,10 +65,6 @@ class ChromaDB:
|
|||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
"""
|
"""
|
||||||
Initialize the ChromaDB instance.
|
Initialize the ChromaDB instance.
|
||||||
|
|
||||||
Args:
|
|
||||||
persist_directory: Optional directory to persist the database.
|
|
||||||
If None, the database will be in-memory only.
|
|
||||||
"""
|
"""
|
||||||
config = get_config()
|
config = get_config()
|
||||||
self.embedding_functions = embedding_functions.OpenAIEmbeddingFunction(
|
self.embedding_functions = embedding_functions.OpenAIEmbeddingFunction(
|
||||||
@@ -77,6 +73,7 @@ class ChromaDB:
|
|||||||
model_name=config.get("voc-engine_embedding", "endpoint"),
|
model_name=config.get("voc-engine_embedding", "endpoint"),
|
||||||
)
|
)
|
||||||
persist_directory = config.get("chroma_vsdb", "database_dir", fallback=None)
|
persist_directory = config.get("chroma_vsdb", "database_dir", fallback=None)
|
||||||
|
logging.debug(f"persist_directory: {persist_directory}")
|
||||||
if persist_directory:
|
if persist_directory:
|
||||||
self.client = chromadb.PersistentClient(
|
self.client = chromadb.PersistentClient(
|
||||||
path=persist_directory,
|
path=persist_directory,
|
||||||
@@ -189,10 +186,9 @@ class ChromaDB:
|
|||||||
ids=ids,
|
ids=ids,
|
||||||
include=["documents", "metadatas", "distances"],
|
include=["documents", "metadatas", "distances"],
|
||||||
)
|
)
|
||||||
print("log: results keys: ", results.keys())
|
|
||||||
print("log: results ids: ", results['ids'])
|
|
||||||
formatted_results = []
|
formatted_results = []
|
||||||
for i in range(len(results['ids'][0])):
|
for i in range(len(results['ids'][0])):
|
||||||
|
logging.info(f"result id: {results['ids'][0][i]}, distance: {results['distances'][0][i]}")
|
||||||
result = {
|
result = {
|
||||||
'id': results['ids'][0][i],
|
'id': results['ids'][0][i],
|
||||||
'distance': results['distances'][0][i],
|
'distance': results['distances'][0][i],
|
||||||
|
|||||||
Reference in New Issue
Block a user