В Python я написал эту функцию, чтобы возвращать 5 наиболее распространенных документов на основе встраивания ответа QA. Это работает:
Код: Выделить всё
similarity_score = (
(Document.answer_embedding.op('')(embedding_array)) +
(Document.answer_keyword_embedding.op('')(keyword_embedding_array))
)
query = (
select(Document.doc_id, Document.answer))
.order_by(similarity_score)
.limit(max_neighbors)
)
results = session.execute(query).all()
Все следующие фрагменты кода выдают одну и ту же ошибку: Сеанс не удалось: объект 'float' не подлежит подписке.
Код: Выделить всё
query = (
select(Document.doc_id, Document.answer,similarity_score.label("similarity"))
.order_by(similarity_score)
.limit(max_neighbors)
)
Код: Выделить всё
query = (
select(Document).add_columns(similarity_score.label("similarity"))
.order_by(similarity_score)
.limit(max_neighbors)
)
Когда я распечатываю запрос, он выглядит так.
Код: Выделить всё
Query: SELECT "Document"."DocId", "Document"."Answer", ("Document"."AnswerEmbedding" :AnswerEmbedding_1) + ("Document"."AnswerKeywordEmbedding" :AnswerKeywordEmbedding_1) AS similarity
FROM "Document" ORDER BY ("Document"."AnswerEmbedding" :AnswerEmbedding_1) + ("Document"."AnswerKeywordEmbedding" :AnswerKeywordEmbedding_1)
LIMIT :param_1
Подробнее здесь: https://stackoverflow.com/questions/790 ... postgresql
Мобильная версия