Skip to content

Commit e2e7085

Browse files
committed
wip for query builder
1 parent 7f030e3 commit e2e7085

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from pypika import Query, Table, AliasedQuery, Order
2+
from pgml.queries import Embed, CosineDistance
3+
4+
embeddings_table = Table("embeddings_table")
5+
chunks_table = Table("chunks_table")
6+
documents_table = Table("documents_table")
7+
8+
query_embed = Query().select(Embed(transformer="instructxl", text="hello"))
9+
print(query_embed)
10+
11+
query_table = AliasedQuery("query_cte")
12+
query_cte = Query().with_(query_embed, "query_cte").from_(query_table).select('*')
13+
print(query_cte)
14+
15+
table_embed = (
16+
Query()
17+
.with_(
18+
Query()
19+
.from_(embeddings_table)
20+
.cross_join(query_table)
21+
.on(embeddings_table.embedding == query_table.embedding).select('*'),
22+
"cte",
23+
)
24+
.from_(AliasedQuery("cte"))
25+
.select("score")
26+
)
27+
print(table_embed)

pgml-sdks/python/pgml/pgml/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
run_create_or_insert_statement,
55
run_select_statement,
66
run_drop_or_delete_statement,
7-
)
7+
)
8+
from .queries import Embed, CosineDistance

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
run_select_statement,
2121
)
2222

23+
from .queries import Embed, CosineDistance
2324
from langchain.text_splitter import RecursiveCharacterTextSplitter
2425
from pypika.queries import Schema, Table, Query, QueryBuilder
2526

@@ -849,6 +850,9 @@ def vector_recall(self,
849850
return []
850851

851852
conn = self.pool.getconn()
853+
854+
cte_query = Query.select(Embed(transformer=model,text=query,parameters=query_parameters)).with_()
855+
table_embedding = Query.from_(embeddings_table).select('chunk_id',CosineDistance(embeddings_table.embedding,query_embedding.cosine)).cross_join(query_embedding)
852856
cte_select_statement = """
853857
WITH query_cte AS (
854858
SELECT pgml.embed(transformer => {model}, text => '{query_text}', kwargs => {model_params}) AS query_embedding

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy