Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf947cd8

Browse files
committed
Query builder refactor
1 parentf753be8 commitf947cd8

File tree

3 files changed

+22
-14
lines changed

3 files changed

+22
-14
lines changed

‎pgml-sdks/python/pgml/examples/question_answering_query_builder.py‎

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,10 @@
3434

3535
start=time()
3636
query="Who won 20 grammy awards?"
37-
documents_table=Table("documents",schema=collection_name)
3837
sql_query= (
39-
collection.vector_recall(query)
40-
.where(documents_table.metadata.contains({"title":"Beyoncé"}))
41-
.limit(5)
38+
collection.query().vector_recall(query).filter({"title":"Beyoncé"}).limit(5)
4239
)
40+
4341
results=collection.execute(sql_query)
4442
_end=time()
4543
console.print("\nResults for '%s'"% (query),style="bold")

‎pgml-sdks/python/pgml/pgml/collection.py‎

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -821,25 +821,31 @@ def query(self):
821821
returnPGMLQuery(self)
822822

823823

824-
classPGMLQuery(QueryBuilder):
824+
classPGMLQuery:
825825
def__init__(self,collection:Collection)->None:
826+
self.query=Query()
826827
self.collection=collection
827828

828829
def__str__(self)->str:
829-
returnself.get_sql()
830+
returnself.query.get_sql()
830831

831832
deflimit(self,_limit:int):
832-
self=self.limit(_limit)
833+
self.query=self.query.limit(_limit)
833834
returnself
834-
835+
836+
deffilter(self,criteria:Dict[str,Any]):
837+
documents_table=Table("documents",schema=self.collection.name)
838+
self.query=self.query.where(documents_table.metadata.contains(criteria))
839+
returnself
840+
835841
defvector_recall(
836842
self,
837843
query:str,
838844
query_parameters:Optional[Dict[str,Any]]= {},
839845
top_k:int=5,
840846
model_id:int=1,
841847
splitter_id:int=1,
842-
):
848+
):
843849
ifmodel_idin_cache_model_names.keys():
844850
model=_cache_model_names[model_id]
845851
else:
@@ -909,17 +915,17 @@ def vector_recall(
909915
.cross()
910916
)
911917

912-
self= (
913-
Query()
914-
.with_(query_embed,"query_cte")
918+
self.query= (
919+
self.query.with_(query_embed,"query_cte")
915920
.with_(table_embed,"cte")
916921
.from_("cte")
917922
.select(cte.score,chunks_table.chunk,documents_table.metadata)
918923
.orderby(cte.score,order=Order.desc)
919924
.inner_join(chunks_table)
920925
.on(chunks_table.id==cte.chunk_id)
921926
.inner_join(documents_table)
922-
.on(documents_table.id==chunks_table.document_id).limit(top_k)
927+
.on(documents_table.id==chunks_table.document_id)
928+
.limit(top_k)
923929
)
924930

925931
returnself

‎pgml-sdks/python/pgml/tests/test_collection.py‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,12 @@ def test_vector_recall(self):
171171
self.collection.generate_chunks()
172172
self.collection.generate_embeddings()
173173
query= (
174-
self.collection.query().vector_recall("product is abc").limit(2).limit(1)
174+
self.collection.query()
175+
.vector_recall("product is abc")
176+
.filter({"source":"amazon"})
177+
.limit(2)
175178
)
179+
print(query)
176180
results=self.collection.execute(query)
177181
print(results)
178182
assertresults[0]["metadata"]["user"]=="John Doe"

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp