CoolFace
Apppublic

neuesql/sqlgptapp

sourceHugging Facemitupdated 3y agoView on Hugging Face
1likes
client.py65 linesDownload Raw Back to root
1from abc import ABC, abstractmethod2from typing import List3from loguru import logger4import openai5 6 7class SQLService(ABC):8 9    @abstractmethod10    def translate(self, source_db: str, target_db: str, sql: str) -> List:11        ...12 13 14class OpenAIService(SQLService):15 16    def __init__(self, api_key) -> None:17        super().__init__()18        openai.api_key = api_key19 20 21    def translate(self, source_db: str, target_db: str, sql: str) -> List:22        results = []23        try:24            response = openai.Completion.create(25                model="text-davinci-003",26                prompt=f"##### Translate this function  from Oracle into Postgresql\n"27                       f"### {source_db}"28                       f""29                       f"   {sql}"30                       f""31                       f"### {target_db}",32                temperature=0,33                max_tokens=2048,34                top_p=1,35                frequency_penalty=0,36                presence_penalty=0,37                stop=["###"]38            )39            for choice in response.choices:40                logger.info(f"transform {source_db} to {target_db}, SQL:")41                logger.debug(choice.text)42                results.append(choice.text)43        except Exception as ex:44            logger.error(f"transform from {source_db} to {target_db}, failed \n {sql}")45            logger.exception(ex)46        return results47 48 49class GoogleT5Service(SQLService):50 51    def translate(self, source_db: str, target_db: str, sql: str) -> List:52        return ["In Developing now"]53 54    def __init__(self):55        ...56 57 58class FacebookLLAMAService(SQLService):59 60    def translate(self, source_db: str, target_db: str, sql: str) -> List:61        return ["In facebook waiting list"]62 63    def __init__(self):64        ...65