mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-27 00:48:45 +00:00
community[patch]: surrealdb handle for empty metadata and allow collection names with complex characters (#17374)
- **Description:** Handle for empty metadata and allow collection names with complex characters - **Issue:** #17057 - **Dependencies:** `surrealdb` --------- Co-authored-by: Bagatur <22008038+baskaryan@users.noreply.github.com>
This commit is contained in:
parent
0df76bee37
commit
69bb96c80f
@ -220,26 +220,38 @@ class SurrealDBStore(VectorStore):
|
||||
"k": k,
|
||||
"score_threshold": kwargs.get("score_threshold", 0),
|
||||
}
|
||||
query = """select id, text, metadata,
|
||||
vector::similarity::cosine(embedding,{embedding}) as similarity
|
||||
from {collection}
|
||||
where vector::similarity::cosine(embedding,{embedding}) >= {score_threshold}
|
||||
order by similarity desc LIMIT {k}
|
||||
""".format(**args)
|
||||
results = await self.sdb.query(query)
|
||||
query = f"""
|
||||
select
|
||||
id,
|
||||
text,
|
||||
metadata,
|
||||
vector::similarity::cosine(embedding, $embedding) as similarity
|
||||
from ⟨{args["collection"]}⟩
|
||||
where vector::similarity::cosine(embedding, $embedding) >= $score_threshold
|
||||
order by similarity desc LIMIT $k;
|
||||
"""
|
||||
results = await self.sdb.query(query, args)
|
||||
|
||||
if len(results) == 0:
|
||||
return []
|
||||
|
||||
result = results[0]
|
||||
|
||||
if result["status"] != "OK":
|
||||
from surrealdb.ws import SurrealException
|
||||
|
||||
err = result.get("result", "Unknown Error")
|
||||
raise SurrealException(err)
|
||||
|
||||
return [
|
||||
(
|
||||
Document(
|
||||
page_content=result["text"],
|
||||
metadata={"id": result["id"], **result["metadata"]},
|
||||
page_content=doc["text"],
|
||||
metadata={"id": doc["id"], **(doc.get("metadata", None) or {})},
|
||||
),
|
||||
result["similarity"],
|
||||
doc["similarity"],
|
||||
)
|
||||
for result in results[0]["result"]
|
||||
for doc in result["result"]
|
||||
]
|
||||
|
||||
async def asimilarity_search_with_relevance_scores(
|
||||
|
Loading…
Reference in New Issue
Block a user