vanna 0.7.7__tar.gz → 0.7.9__tar.gz

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.
Files changed (79) hide show
  1. {vanna-0.7.7 → vanna-0.7.9}/PKG-INFO +4 -4
  2. {vanna-0.7.7 → vanna-0.7.9}/pyproject.toml +4 -4
  3. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/base/base.py +25 -8
  4. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/pinecone/pinecone_vector.py +1 -1
  5. {vanna-0.7.7 → vanna-0.7.9}/LICENSE +0 -0
  6. {vanna-0.7.7 → vanna-0.7.9}/README.md +0 -0
  7. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/ZhipuAI/ZhipuAI_Chat.py +0 -0
  8. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/ZhipuAI/ZhipuAI_embeddings.py +0 -0
  9. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/ZhipuAI/__init__.py +0 -0
  10. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/__init__.py +0 -0
  11. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/advanced/__init__.py +0 -0
  12. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/anthropic/__init__.py +0 -0
  13. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/anthropic/anthropic_chat.py +0 -0
  14. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/azuresearch/__init__.py +0 -0
  15. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/azuresearch/azuresearch_vector.py +0 -0
  16. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/base/__init__.py +0 -0
  17. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/bedrock/__init__.py +0 -0
  18. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/bedrock/bedrock_converse.py +0 -0
  19. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/chromadb/__init__.py +0 -0
  20. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/chromadb/chromadb_vector.py +0 -0
  21. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/cohere/__init__.py +0 -0
  22. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/cohere/cohere_chat.py +0 -0
  23. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/cohere/cohere_embeddings.py +0 -0
  24. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/deepseek/__init__.py +0 -0
  25. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/deepseek/deepseek_chat.py +0 -0
  26. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/exceptions/__init__.py +0 -0
  27. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/faiss/__init__.py +0 -0
  28. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/faiss/faiss.py +0 -0
  29. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/flask/__init__.py +0 -0
  30. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/flask/assets.py +0 -0
  31. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/flask/auth.py +0 -0
  32. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/google/__init__.py +0 -0
  33. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/google/bigquery_vector.py +0 -0
  34. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/google/gemini_chat.py +0 -0
  35. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/hf/__init__.py +0 -0
  36. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/hf/hf.py +0 -0
  37. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/local.py +0 -0
  38. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/marqo/__init__.py +0 -0
  39. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/marqo/marqo.py +0 -0
  40. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/milvus/__init__.py +0 -0
  41. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/milvus/milvus_vector.py +0 -0
  42. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/mistral/__init__.py +0 -0
  43. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/mistral/mistral.py +0 -0
  44. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/mock/__init__.py +0 -0
  45. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/mock/embedding.py +0 -0
  46. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/mock/llm.py +0 -0
  47. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/mock/vectordb.py +0 -0
  48. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/ollama/__init__.py +0 -0
  49. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/ollama/ollama.py +0 -0
  50. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/openai/__init__.py +0 -0
  51. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/openai/openai_chat.py +0 -0
  52. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/openai/openai_embeddings.py +0 -0
  53. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/opensearch/__init__.py +0 -0
  54. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/opensearch/opensearch_vector.py +0 -0
  55. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/opensearch/opensearch_vector_semantic.py +0 -0
  56. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/oracle/__init__.py +0 -0
  57. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/oracle/oracle_vector.py +0 -0
  58. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/pgvector/__init__.py +0 -0
  59. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/pgvector/pgvector.py +0 -0
  60. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/pinecone/__init__.py +0 -0
  61. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/qdrant/__init__.py +0 -0
  62. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/qdrant/qdrant.py +0 -0
  63. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/qianfan/Qianfan_Chat.py +0 -0
  64. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/qianfan/Qianfan_embeddings.py +0 -0
  65. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/qianfan/__init__.py +0 -0
  66. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/qianwen/QianwenAI_chat.py +0 -0
  67. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/qianwen/QianwenAI_embeddings.py +0 -0
  68. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/qianwen/__init__.py +0 -0
  69. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/remote.py +0 -0
  70. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/types/__init__.py +0 -0
  71. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/utils.py +0 -0
  72. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/vannadb/__init__.py +0 -0
  73. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/vannadb/vannadb_vector.py +0 -0
  74. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/vllm/__init__.py +0 -0
  75. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/vllm/vllm.py +0 -0
  76. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/weaviate/__init__.py +0 -0
  77. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/weaviate/weaviate_vector.py +0 -0
  78. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/xinference/__init__.py +0 -0
  79. {vanna-0.7.7 → vanna-0.7.9}/src/vanna/xinference/xinference.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vanna
3
- Version: 0.7.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"
@@ -4,7 +4,7 @@ build-backend = "flit_core.buildapi"
4
4
 
5
5
  [project]
6
6
  name = "vanna"
7
- version = "0.7.7"
7
+ version = "0.7.9"
8
8
  authors = [
9
9
  { name="Zain Hoda", email="zain@vanna.ai" },
10
10
  ]
@@ -33,9 +33,9 @@ bigquery = ["google-cloud-bigquery"]
33
33
  snowflake = ["snowflake-connector-python"]
34
34
  duckdb = ["duckdb"]
35
35
  google = ["google-generativeai", "google-cloud-aiplatform"]
36
- all = ["psycopg2-binary", "db-dtypes", "PyMySQL", "google-cloud-bigquery", "snowflake-connector-python", "duckdb", "openai", "qianfan", "mistralai>=1.0.0", "chromadb", "anthropic", "zhipuai", "marqo", "google-generativeai", "google-cloud-aiplatform", "qdrant-client", "fastembed", "ollama", "httpx", "opensearch-py", "opensearch-dsl", "transformers", "pinecone", "pymilvus[model]","weaviate-client", "azure-search-documents", "azure-identity", "azure-common", "faiss-cpu", "boto", "boto3", "botocore", "langchain_core", "langchain_postgres", "langchain-community", "langchain-huggingface", "xinference-client"]
36
+ all = ["psycopg2-binary", "db-dtypes", "PyMySQL", "google-cloud-bigquery", "snowflake-connector-python", "duckdb", "openai", "qianfan", "mistralai>=1.0.0", "chromadb<1.0.0", "anthropic", "zhipuai", "marqo", "google-generativeai", "google-cloud-aiplatform", "qdrant-client", "fastembed", "ollama", "httpx", "opensearch-py", "opensearch-dsl", "transformers", "pinecone", "pymilvus[model]","weaviate-client", "azure-search-documents", "azure-identity", "azure-common", "faiss-cpu", "boto", "boto3", "botocore", "langchain_core", "langchain_postgres", "langchain-community", "langchain-huggingface", "xinference-client"]
37
37
  test = ["tox"]
38
- chromadb = ["chromadb"]
38
+ chromadb = ["chromadb<1.0.0"]
39
39
  openai = ["openai"]
40
40
  qianfan = ["qianfan"]
41
41
  mistralai = ["mistralai>=1.0.0"]
@@ -57,4 +57,4 @@ pgvector = ["langchain-postgres>=0.0.12"]
57
57
  faiss-cpu = ["faiss-cpu"]
58
58
  faiss-gpu = ["faiss-gpu"]
59
59
  xinference-client = ["xinference-client"]
60
- oracle = ["oracledb", "chromadb"]
60
+ oracle = ["oracledb", "chromadb<1.0.0"]
@@ -181,30 +181,47 @@ class VannaBase(ABC):
181
181
  str: The extracted SQL query.
182
182
  """
183
183
 
184
- # If the llm_response contains a CTE (with clause), extract the last sql between WITH and ;
185
- sqls = re.findall(r"\bWITH\b .*?;", llm_response, re.DOTALL)
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
- # If the llm_response is not markdown formatted, extract last sql by finding select and ; in the response
192
- sqls = re.findall(r"SELECT.*?;", llm_response, re.DOTALL)
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
- # If the llm_response contains a markdown code block, with or without the sql tag, extract the last sql from it
199
- sqls = re.findall(r"```sql\n(.*)```", llm_response, re.DOTALL)
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
- sqls = re.findall(r"```(.*)```", llm_response, re.DOTALL)
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["vectors"] == {}:
114
+ if fetch_response.vectors == {}:
115
115
  return False
116
116
  return True
117
117
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes