vanna 0.3.4__py3-none-any.whl → 0.4.0__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/flask/auth.py ADDED
@@ -0,0 +1,55 @@
1
+ from abc import ABC, abstractmethod
2
+
3
+ import flask
4
+
5
+
6
+ class AuthInterface(ABC):
7
+ @abstractmethod
8
+ def get_user(self, flask_request) -> any:
9
+ pass
10
+
11
+ @abstractmethod
12
+ def is_logged_in(self, user: any) -> bool:
13
+ pass
14
+
15
+ @abstractmethod
16
+ def override_config_for_user(self, user: any, config: dict) -> dict:
17
+ pass
18
+
19
+ @abstractmethod
20
+ def login_form(self) -> str:
21
+ pass
22
+
23
+ @abstractmethod
24
+ def login_handler(self, flask_request) -> str:
25
+ pass
26
+
27
+ @abstractmethod
28
+ def callback_handler(self, flask_request) -> str:
29
+ pass
30
+
31
+ @abstractmethod
32
+ def logout_handler(self, flask_request) -> str:
33
+ pass
34
+
35
+ class NoAuth(AuthInterface):
36
+ def get_user(self, flask_request) -> any:
37
+ return {}
38
+
39
+ def is_logged_in(self, user: any) -> bool:
40
+ return True
41
+
42
+ def override_config_for_user(self, user: any, config: dict) -> dict:
43
+ return config
44
+
45
+ def login_form(self) -> str:
46
+ return ''
47
+
48
+ def login_handler(self, flask_request) -> str:
49
+ return 'No login required'
50
+
51
+ def callback_handler(self, flask_request) -> str:
52
+ return 'No login required'
53
+
54
+ def logout_handler(self, flask_request) -> str:
55
+ return 'No login required'
@@ -0,0 +1 @@
1
+ from .gemini_chat import GoogleGeminiChat
@@ -0,0 +1,52 @@
1
+ import os
2
+ from ..base import VannaBase
3
+
4
+
5
+ class GoogleGeminiChat(VannaBase):
6
+ def __init__(self, config=None):
7
+ VannaBase.__init__(self, config=config)
8
+
9
+ # default temperature - can be overrided using config
10
+ self.temperature = 0.7
11
+
12
+ if "temperature" in config:
13
+ self.temperature = config["temperature"]
14
+
15
+ if "model_name" in config:
16
+ model_name = config["model_name"]
17
+ else:
18
+ model_name = "gemini-1.0-pro"
19
+
20
+ self.google_api_key = None
21
+
22
+ if "api_key" in config or os.getenv("GOOGLE_API_KEY"):
23
+ """
24
+ If Google api_key is provided through config
25
+ or set as an environment variable, assign it.
26
+ """
27
+ import google.generativeai as genai
28
+
29
+ genai.configure(api_key=config["api_key"])
30
+ self.chat_model = genai.GenerativeModel(model_name)
31
+ else:
32
+ # Authenticate using VertexAI
33
+ from vertexai.preview.generative_models import GenerativeModel
34
+ self.chat_model = GenerativeModel("gemini-pro")
35
+
36
+ def system_message(self, message: str) -> any:
37
+ return message
38
+
39
+ def user_message(self, message: str) -> any:
40
+ return message
41
+
42
+ def assistant_message(self, message: str) -> any:
43
+ return message
44
+
45
+ def submit_prompt(self, prompt, **kwargs) -> str:
46
+ response = self.chat_model.generate_content(
47
+ prompt,
48
+ generation_config={
49
+ "temperature": self.temperature,
50
+ },
51
+ )
52
+ return response.text
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vanna
3
- Version: 0.3.4
3
+ Version: 0.4.0
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,11 +28,15 @@ Requires-Dist: chromadb ; extra == "all"
28
28
  Requires-Dist: anthropic ; extra == "all"
29
29
  Requires-Dist: zhipuai ; extra == "all"
30
30
  Requires-Dist: marqo ; extra == "all"
31
+ Requires-Dist: google-generativeai ; extra == "all"
32
+ Requires-Dist: google-cloud-aiplatform ; extra == "all"
31
33
  Requires-Dist: anthropic ; extra == "anthropic"
32
34
  Requires-Dist: google-cloud-bigquery ; extra == "bigquery"
33
35
  Requires-Dist: chromadb ; extra == "chromadb"
34
36
  Requires-Dist: duckdb ; extra == "duckdb"
35
37
  Requires-Dist: google-generativeai ; extra == "gemini"
38
+ Requires-Dist: google-generativeai ; extra == "google"
39
+ Requires-Dist: google-cloud-aiplatform ; extra == "google"
36
40
  Requires-Dist: marqo ; extra == "marqo"
37
41
  Requires-Dist: mistralai ; extra == "mistralai"
38
42
  Requires-Dist: PyMySQL ; extra == "mysql"
@@ -50,6 +54,7 @@ Provides-Extra: bigquery
50
54
  Provides-Extra: chromadb
51
55
  Provides-Extra: duckdb
52
56
  Provides-Extra: gemini
57
+ Provides-Extra: google
53
58
  Provides-Extra: marqo
54
59
  Provides-Extra: mistralai
55
60
  Provides-Extra: mysql
@@ -8,12 +8,15 @@ vanna/ZhipuAI/__init__.py,sha256=NlsijtcZp5Tj9jkOe9fNcOQND_QsGgu7otODsCLBPr0,116
8
8
  vanna/anthropic/__init__.py,sha256=85s_2mAyyPxc0T_0JEvYeAkEKWJwkwqoyUwSC5dw9Gk,43
9
9
  vanna/anthropic/anthropic_chat.py,sha256=Wk0o-NMW1uvR2fhSWxrR_2FqNh-dLprNG4uuVqpqAkY,2615
10
10
  vanna/base/__init__.py,sha256=Sl-HM1RRYzAZoSqmL1CZQmF3ZF-byYTCFQP3JZ2A5MU,28
11
- vanna/base/base.py,sha256=89XPWy97YVx6090mNmu1zvn4k8X1pusCuAIypHHexNc,58100
11
+ vanna/base/base.py,sha256=_2vANGAcUe6IrsEhZyFnE6FdO8NMLylfyGlRI4XujWE,58143
12
12
  vanna/chromadb/__init__.py,sha256=-iL0nW_g4uM8nWKMuWnNePfN4nb9uk8P3WzGvezOqRg,50
13
- vanna/chromadb/chromadb_vector.py,sha256=1n4U4XpXThCFqyJf0zAYVA7mQu9rUkjOFtYn9e04JAo,8461
13
+ vanna/chromadb/chromadb_vector.py,sha256=eKyPck99Y6Jt-BNWojvxLG-zvAERzLSm-3zY-bKXvaA,8792
14
14
  vanna/exceptions/__init__.py,sha256=N76unE7sjbGGBz6LmCrPQAugFWr9cUFv8ErJxBrCTts,717
15
- vanna/flask/__init__.py,sha256=tpwpA8596Uyn60FAy7I5oJ81c7kgCB2JG9X044P0_SA,21211
16
- vanna/flask/assets.py,sha256=pOOtPV8aWtFsTuxJneFHcfrXhXh6cOSvS-Y8JO2HYrY,180924
15
+ vanna/flask/__init__.py,sha256=5Du2oK5s-VSLicRPvxMAL1-Gh_jdX847FjJOf5AVapo,23721
16
+ vanna/flask/assets.py,sha256=ZESgn0-XrJl4_YV69Lu7Dr7-Y9Eql7xqb7PsoMzrofw,183889
17
+ vanna/flask/auth.py,sha256=UpKxh7W5cd43W0LGch0VqhncKwB78L6dtOQkl1JY5T0,1246
18
+ vanna/google/__init__.py,sha256=M-dCxCZcKL4bTQyMLj6r6VRs65YNX9Tl2aoPCuqGm-8,41
19
+ vanna/google/gemini_chat.py,sha256=ps3A-afFbCo3HeFTLL_nMoQO1PsGvRUUPRUppbMcDew,1584
17
20
  vanna/marqo/__init__.py,sha256=GaAWtJ0B-H5rTY607iLCCrLD7T0zMYM5qWIomEB9gLk,37
18
21
  vanna/marqo/marqo.py,sha256=W7WTtzWp4RJjZVy6OaXHqncUBIPdI4Q7qH7BRCxZ1_A,5242
19
22
  vanna/mistral/__init__.py,sha256=70rTY-69Z2ehkkMj84dNMCukPo6AWdflBGvIB_pztS0,29
@@ -26,6 +29,6 @@ vanna/openai/openai_embeddings.py,sha256=g4pNh9LVcYP9wOoO8ecaccDFWmCUYMInebfHucA
26
29
  vanna/types/__init__.py,sha256=Qhn_YscKtJh7mFPCyCDLa2K8a4ORLMGVnPpTbv9uB2U,4957
27
30
  vanna/vannadb/__init__.py,sha256=C6UkYocmO6dmzfPKZaWojN0mI5YlZZ9VIbdcquBE58A,48
28
31
  vanna/vannadb/vannadb_vector.py,sha256=9YwTO3Lh5owWQE7KPMBqLp2EkiGV0RC1sEYhslzJzgI,6168
29
- vanna-0.3.4.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
30
- vanna-0.3.4.dist-info/METADATA,sha256=FEg4vs5ZiSAvd5YkF5oEfFqod9n3UoNfi51Q_2WKotA,10107
31
- vanna-0.3.4.dist-info/RECORD,,
32
+ vanna-0.4.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
33
+ vanna-0.4.0.dist-info/METADATA,sha256=pz6wxMyiXUNXgQJlRxW-vyA3yC8j0t2OHiTBgdsOSeg,10352
34
+ vanna-0.4.0.dist-info/RECORD,,
File without changes