vanna 0.7.7__py3-none-any.whl → 0.7.9__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vanna/base/base.py +25 -8
- vanna/pinecone/pinecone_vector.py +1 -1
- {vanna-0.7.7.dist-info → vanna-0.7.9.dist-info}/METADATA +4 -4
- {vanna-0.7.7.dist-info → vanna-0.7.9.dist-info}/RECORD +6 -6
- {vanna-0.7.7.dist-info → vanna-0.7.9.dist-info}/WHEEL +0 -0
- {vanna-0.7.7.dist-info → vanna-0.7.9.dist-info}/licenses/LICENSE +0 -0
vanna/base/base.py
CHANGED
|
@@ -181,30 +181,47 @@ class VannaBase(ABC):
|
|
|
181
181
|
str: The extracted SQL query.
|
|
182
182
|
"""
|
|
183
183
|
|
|
184
|
-
|
|
185
|
-
|
|
184
|
+
import re
|
|
185
|
+
"""
|
|
186
|
+
Extracts the SQL query from the LLM response, handling various formats including:
|
|
187
|
+
- WITH clause
|
|
188
|
+
- SELECT statement
|
|
189
|
+
- CREATE TABLE AS SELECT
|
|
190
|
+
- Markdown code blocks
|
|
191
|
+
"""
|
|
192
|
+
|
|
193
|
+
# Match CREATE TABLE ... AS SELECT
|
|
194
|
+
sqls = re.findall(r"\bCREATE\s+TABLE\b.*?\bAS\b.*?;", llm_response, re.DOTALL | re.IGNORECASE)
|
|
186
195
|
if sqls:
|
|
187
196
|
sql = sqls[-1]
|
|
188
197
|
self.log(title="Extracted SQL", message=f"{sql}")
|
|
189
198
|
return sql
|
|
190
199
|
|
|
191
|
-
#
|
|
192
|
-
sqls = re.findall(r"
|
|
200
|
+
# Match WITH clause (CTEs)
|
|
201
|
+
sqls = re.findall(r"\bWITH\b .*?;", llm_response, re.DOTALL | re.IGNORECASE)
|
|
193
202
|
if sqls:
|
|
194
203
|
sql = sqls[-1]
|
|
195
204
|
self.log(title="Extracted SQL", message=f"{sql}")
|
|
196
205
|
return sql
|
|
197
206
|
|
|
198
|
-
#
|
|
199
|
-
sqls = re.findall(r"
|
|
207
|
+
# Match SELECT ... ;
|
|
208
|
+
sqls = re.findall(r"\bSELECT\b .*?;", llm_response, re.DOTALL | re.IGNORECASE)
|
|
200
209
|
if sqls:
|
|
201
210
|
sql = sqls[-1]
|
|
202
211
|
self.log(title="Extracted SQL", message=f"{sql}")
|
|
203
212
|
return sql
|
|
204
213
|
|
|
205
|
-
|
|
214
|
+
# Match ```sql ... ``` blocks
|
|
215
|
+
sqls = re.findall(r"```sql\s*\n(.*?)```", llm_response, re.DOTALL | re.IGNORECASE)
|
|
206
216
|
if sqls:
|
|
207
|
-
sql = sqls[-1]
|
|
217
|
+
sql = sqls[-1].strip()
|
|
218
|
+
self.log(title="Extracted SQL", message=f"{sql}")
|
|
219
|
+
return sql
|
|
220
|
+
|
|
221
|
+
# Match any ``` ... ``` code blocks
|
|
222
|
+
sqls = re.findall(r"```(.*?)```", llm_response, re.DOTALL | re.IGNORECASE)
|
|
223
|
+
if sqls:
|
|
224
|
+
sql = sqls[-1].strip()
|
|
208
225
|
self.log(title="Extracted SQL", message=f"{sql}")
|
|
209
226
|
return sql
|
|
210
227
|
|
|
@@ -111,7 +111,7 @@ class PineconeDB_VectorStore(VannaBase):
|
|
|
111
111
|
|
|
112
112
|
def _check_if_embedding_exists(self, id: str, namespace: str) -> bool:
|
|
113
113
|
fetch_response = self.Index.fetch(ids=[id], namespace=namespace)
|
|
114
|
-
if fetch_response
|
|
114
|
+
if fetch_response.vectors == {}:
|
|
115
115
|
return False
|
|
116
116
|
return True
|
|
117
117
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: vanna
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.9
|
|
4
4
|
Summary: Generate SQL queries from natural language
|
|
5
5
|
Author-email: Zain Hoda <zain@vanna.ai>
|
|
6
6
|
Requires-Python: >=3.9
|
|
@@ -28,7 +28,7 @@ Requires-Dist: duckdb ; extra == "all"
|
|
|
28
28
|
Requires-Dist: openai ; extra == "all"
|
|
29
29
|
Requires-Dist: qianfan ; extra == "all"
|
|
30
30
|
Requires-Dist: mistralai>=1.0.0 ; extra == "all"
|
|
31
|
-
Requires-Dist: chromadb ; extra == "all"
|
|
31
|
+
Requires-Dist: chromadb<1.0.0 ; extra == "all"
|
|
32
32
|
Requires-Dist: anthropic ; extra == "all"
|
|
33
33
|
Requires-Dist: zhipuai ; extra == "all"
|
|
34
34
|
Requires-Dist: marqo ; extra == "all"
|
|
@@ -64,7 +64,7 @@ Requires-Dist: fastembed ; extra == "azuresearch"
|
|
|
64
64
|
Requires-Dist: boto3 ; extra == "bedrock"
|
|
65
65
|
Requires-Dist: botocore ; extra == "bedrock"
|
|
66
66
|
Requires-Dist: google-cloud-bigquery ; extra == "bigquery"
|
|
67
|
-
Requires-Dist: chromadb ; extra == "chromadb"
|
|
67
|
+
Requires-Dist: chromadb<1.0.0 ; extra == "chromadb"
|
|
68
68
|
Requires-Dist: clickhouse_connect ; extra == "clickhouse"
|
|
69
69
|
Requires-Dist: duckdb ; extra == "duckdb"
|
|
70
70
|
Requires-Dist: faiss-cpu ; extra == "faiss-cpu"
|
|
@@ -85,7 +85,7 @@ Requires-Dist: opensearch-dsl ; extra == "opensearch"
|
|
|
85
85
|
Requires-Dist: langchain-community ; extra == "opensearch"
|
|
86
86
|
Requires-Dist: langchain-huggingface ; extra == "opensearch"
|
|
87
87
|
Requires-Dist: oracledb ; extra == "oracle"
|
|
88
|
-
Requires-Dist: chromadb ; extra == "oracle"
|
|
88
|
+
Requires-Dist: chromadb<1.0.0 ; extra == "oracle"
|
|
89
89
|
Requires-Dist: langchain-postgres>=0.0.12 ; extra == "pgvector"
|
|
90
90
|
Requires-Dist: pinecone ; extra == "pinecone"
|
|
91
91
|
Requires-Dist: fastembed ; extra == "pinecone"
|
|
@@ -11,7 +11,7 @@ vanna/anthropic/anthropic_chat.py,sha256=7X3x8SYwDY28aGyBnt0YNRMG8YY1p_t-foMfKGj
|
|
|
11
11
|
vanna/azuresearch/__init__.py,sha256=tZfvsrCJESiL3EnxA4PrOc5NoO8MXEzCfHX_hnj8n-c,58
|
|
12
12
|
vanna/azuresearch/azuresearch_vector.py,sha256=_-t53PUnJM914GYbTYlyee06ocfu7l2NkZerBQtlJcs,9566
|
|
13
13
|
vanna/base/__init__.py,sha256=Sl-HM1RRYzAZoSqmL1CZQmF3ZF-byYTCFQP3JZ2A5MU,28
|
|
14
|
-
vanna/base/base.py,sha256=
|
|
14
|
+
vanna/base/base.py,sha256=HKb6j1jhJmJ8h5fe0t7h-KEVn_5lDg1mA3W2dqViuw8,74240
|
|
15
15
|
vanna/bedrock/__init__.py,sha256=hRT2bgJbHEqViLdL-t9hfjSfFdIOkPU2ADBt-B1En-8,46
|
|
16
16
|
vanna/bedrock/bedrock_converse.py,sha256=Nx5kYm-diAfYmsWAnTP5xnv7V84Og69-AP9b3seIe0E,2869
|
|
17
17
|
vanna/chromadb/__init__.py,sha256=-iL0nW_g4uM8nWKMuWnNePfN4nb9uk8P3WzGvezOqRg,50
|
|
@@ -55,7 +55,7 @@ vanna/oracle/oracle_vector.py,sha256=uWcDFs5uhdKdjdEhFXy4RouTOiS-XMFmaUFuuOLtqho
|
|
|
55
55
|
vanna/pgvector/__init__.py,sha256=7Wvu9qcNdNvZu26Dn53jhO9YXELm0_YsrwBab4BdgVM,37
|
|
56
56
|
vanna/pgvector/pgvector.py,sha256=dJfm8rswYZvbaIbnjmyRjL071iw4siE0INibsZtaLXY,9919
|
|
57
57
|
vanna/pinecone/__init__.py,sha256=eO5l8aX8vKL6aIUMgAXGPt1jdqKxB_Hic6cmoVAUrD0,90
|
|
58
|
-
vanna/pinecone/pinecone_vector.py,sha256=
|
|
58
|
+
vanna/pinecone/pinecone_vector.py,sha256=DWJ6USFSGfcFQWC4X9viJddtahAUcDmYq8jrzetB1VE,11445
|
|
59
59
|
vanna/qdrant/__init__.py,sha256=PX_OsDOiPMvwCJ2iGER1drSdQ9AyM8iN5PEBhRb6qqY,73
|
|
60
60
|
vanna/qdrant/qdrant.py,sha256=Acl_jN-ZrtoQav_G3FuKypXiuYSo_hlP5lyOOwTxCWM,12527
|
|
61
61
|
vanna/qianfan/Qianfan_Chat.py,sha256=Z-s9MwH22T4KMR8AViAjms6qoj67pHeQkMsbK-aXf1M,5273
|
|
@@ -73,7 +73,7 @@ vanna/weaviate/__init__.py,sha256=HL6PAl7ePBAkeG8uln-BmM7IUtWohyTPvDfcPzSGSCg,46
|
|
|
73
73
|
vanna/weaviate/weaviate_vector.py,sha256=tUJIZjEy2mda8CB6C8zeN2SKkEO-UJdLsIqy69skuF0,7584
|
|
74
74
|
vanna/xinference/__init__.py,sha256=EFW_sz-BSB2XgmjACOTZmneeIk3I2EiWgue-VVJpnB0,35
|
|
75
75
|
vanna/xinference/xinference.py,sha256=2PI-f7XoBUyL_jfuXPqxCsd0W72h8j6CtEDneFw1AtI,1876
|
|
76
|
-
vanna-0.7.
|
|
77
|
-
vanna-0.7.
|
|
78
|
-
vanna-0.7.
|
|
79
|
-
vanna-0.7.
|
|
76
|
+
vanna-0.7.9.dist-info/licenses/LICENSE,sha256=VYiPMMDqj9BcxUkAYqrAzJpn5tCFXCrnglfRqS5l9Rk,1065
|
|
77
|
+
vanna-0.7.9.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
78
|
+
vanna-0.7.9.dist-info/METADATA,sha256=m92ZX8HYX5y5cZTaAtOaw6PRCbf_6JuNnNso5B89MPo,15626
|
|
79
|
+
vanna-0.7.9.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|