Download client.py from neuesql/sqlgptapp: direct link, hf CLI and curl.
- Browser
- Download file 1.81 kB
-
https://huggingface.co/spaces/neuesql/sqlgptapp/resolve/main/client.py
- Command line
-
hf download hf://spaces/neuesql/sqlgptapp/client.py
-
curl -L -o client.py https://huggingface.co/spaces/neuesql/sqlgptapp/resolve/main/client.py
1.81 kB
| from abc import ABC, abstractmethod | |
| from typing import List | |
| from loguru import logger | |
| import openai | |
| class SQLService(ABC): | |
| def translate(self, source_db: str, target_db: str, sql: str) -> List: | |
| ... | |
| class OpenAIService(SQLService): | |
| def __init__(self, api_key) -> None: | |
| super().__init__() | |
| openai.api_key = api_key | |
| def translate(self, source_db: str, target_db: str, sql: str) -> List: | |
| results = [] | |
| try: | |
| response = openai.Completion.create( | |
| model="text-davinci-003", | |
| prompt=f"##### Translate this function from Oracle into Postgresql\n" | |
| f"### {source_db}" | |
| f"" | |
| f" {sql}" | |
| f"" | |
| f"### {target_db}", | |
| temperature=0, | |
| max_tokens=2048, | |
| top_p=1, | |
| frequency_penalty=0, | |
| presence_penalty=0, | |
| stop=["###"] | |
| ) | |
| for choice in response.choices: | |
| logger.info(f"transform {source_db} to {target_db}, SQL:") | |
| logger.debug(choice.text) | |
| results.append(choice.text) | |
| except Exception as ex: | |
| logger.error(f"transform from {source_db} to {target_db}, failed \n {sql}") | |
| logger.exception(ex) | |
| return results | |
| class GoogleT5Service(SQLService): | |
| def translate(self, source_db: str, target_db: str, sql: str) -> List: | |
| return ["In Developing now"] | |
| def __init__(self): | |
| ... | |
| class FacebookLLAMAService(SQLService): | |
| def translate(self, source_db: str, target_db: str, sql: str) -> List: | |
| return ["In facebook waiting list"] | |
| def __init__(self): | |
| ... | |