mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-13 04:45:19 +00:00
fianl : vector-search-feature
This commit is contained in:
parent
12ebdbae81
commit
e0afd7f496
1 changed files with 15 additions and 8 deletions
|
|
@ -566,7 +566,9 @@ class Oracle23aiClient(VectorDBBase):
|
|||
for row in results:
|
||||
ids[qid].append(row[0])
|
||||
documents[qid].append(row[1].read() if isinstance(row[1], oracledb.LOB) else str(row[1]))
|
||||
metadatas[qid].append(row[2].read() if isinstance(row[2], oracledb.LOB) else row[2])
|
||||
# 🔧 FIXED: Parse JSON metadata properly
|
||||
metadata_str = row[2].read() if isinstance(row[2], oracledb.LOB) else row[2]
|
||||
metadatas[qid].append(self._json_to_metadata(metadata_str))
|
||||
distances[qid].append(float(row[3]))
|
||||
|
||||
log.info(f"Search completed. Found {sum(len(ids[i]) for i in range(num_queries))} total results.")
|
||||
|
|
@ -640,8 +642,10 @@ class Oracle23aiClient(VectorDBBase):
|
|||
|
||||
ids = [[row[0] for row in results]]
|
||||
documents = [[row[1].read() if isinstance(row[1], oracledb.LOB) else str(row[1]) for row in results]]
|
||||
metadatas = [[row[2].read() if isinstance(row[2], oracledb.LOB) else row[2] for row in results]]
|
||||
log.info(f"Query completed. Found {len(ids)} results.")
|
||||
# 🔧 FIXED: Parse JSON metadata properly
|
||||
metadatas = [[self._json_to_metadata(row[2].read() if isinstance(row[2], oracledb.LOB) else row[2]) for row in results]]
|
||||
|
||||
log.info(f"Query completed. Found {len(results)} results.")
|
||||
|
||||
return GetResult(
|
||||
ids=ids,
|
||||
|
|
@ -700,8 +704,9 @@ class Oracle23aiClient(VectorDBBase):
|
|||
|
||||
ids = [[row[0] for row in results]]
|
||||
documents = [[row[1].read() if isinstance(row[1], oracledb.LOB) else str(row[1]) for row in results]]
|
||||
metadatas = [[row[2].read() if isinstance(row[2], oracledb.LOB) else row[2] for row in results]]
|
||||
|
||||
# 🔧 FIXED: Parse JSON metadata properly
|
||||
metadatas = [[self._json_to_metadata(row[2].read() if isinstance(row[2], oracledb.LOB) else row[2]) for row in results]]
|
||||
|
||||
return GetResult(
|
||||
ids=ids,
|
||||
documents=documents,
|
||||
|
|
@ -745,9 +750,11 @@ class Oracle23aiClient(VectorDBBase):
|
|||
params = {'collection_name': collection_name}
|
||||
|
||||
if ids:
|
||||
# Use proper parameterized query for IDs
|
||||
id_list = ",".join([f"'{id}'" for id in ids])
|
||||
query += f" AND id IN ({id_list})"
|
||||
# 🔧 FIXED: Use proper parameterized query to prevent SQL injection
|
||||
placeholders = ','.join([f':id_{i}' for i in range(len(ids))])
|
||||
query += f" AND id IN ({placeholders})"
|
||||
for i, id_val in enumerate(ids):
|
||||
params[f'id_{i}'] = id_val
|
||||
|
||||
if filter:
|
||||
for i, (key, value) in enumerate(filter.items()):
|
||||
|
|
|
|||
Loading…
Reference in a new issue