| 11 | |
| 12 | |
| 13 | class ChatGPT(nn.Module): |
| 14 | def __init__(self, OPENAI_API_KEY: Optional[str] = None, OPENAI_API_BASE: Optional[str] = None, MODEL_TYPE="gpt-3.5-turbo"): |
| 15 | super().__init__() |
| 16 | self.config_file = "config.json" |
| 17 | self.app_keys = [] |
| 18 | if OPENAI_API_KEY is None or OPENAI_API_KEY == '': |
| 19 | OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY") |
| 20 | if OPENAI_API_KEY is not None and OPENAI_API_KEY != "": |
| 21 | openai.api_key = OPENAI_API_KEY |
| 22 | self.OPENAI_API_KEY = OPENAI_API_KEY |
| 23 | if OPENAI_API_BASE is None or OPENAI_API_BASE == '': |
| 24 | OPENAI_API_BASE = os.environ.get("OPENAI_API_BASE") |
| 25 | if OPENAI_API_BASE is not None and OPENAI_API_BASE != "": |
| 26 | openai.api_base = OPENAI_API_BASE |
| 27 | self.OPENAI_API_BASE = OPENAI_API_BASE |
| 28 | self.OPENAI_API_KEY = OPENAI_API_KEY |
| 29 | self.OPENAI_API_BASE = OPENAI_API_BASE |
| 30 | self.MODEL_TYPE = MODEL_TYPE |
| 31 | self.MAX_TOKEN = 8000 |
| 32 | self.contextual_conversations = [] |
| 33 | |
| 34 | self.initConfig() |
| 35 | if self.OPENAI_API_KEY is None and len(self.app_keys) > 0: |
| 36 | self.find_valid_key() |
| 37 | |
| 38 | def initConfig(self): |
| 39 | if os.path.exists(self.config_file): |
| 40 | with open(self.config_file, 'r') as config_file: |
| 41 | config = json.load(config_file) |
| 42 | openai_config = config['openai'] |
| 43 | proxy_config = config['proxy'] |
| 44 | |
| 45 | openai_app_key = None |
| 46 | openai_url_base = None |
| 47 | openai_app_keys = None |
| 48 | model_type = None |
| 49 | proxy_address = None |
| 50 | proxy_port = None |
| 51 | |
| 52 | if 'app_key' in openai_config.keys(): |
| 53 | openai_app_key = openai_config['app_key'] |
| 54 | if 'url_base' in openai_config.keys(): |
| 55 | openai_url_base = openai_config['url_base'] |
| 56 | if 'app_keys' in openai_config.keys(): |
| 57 | openai_app_keys = openai_config['app_keys'] |
| 58 | if 'model_type' in openai_config.keys(): |
| 59 | model_type = openai_config['model_type'] |
| 60 | |
| 61 | if 'address' in proxy_config.keys(): |
| 62 | proxy_address = proxy_config['address'] |
| 63 | if 'port' in proxy_config.keys(): |
| 64 | proxy_port = proxy_config['port'] |
| 65 | if openai_app_key is not None and openai_app_key != "" and self.OPENAI_API_KEY is None: |
| 66 | logging.info("set openai_app_key as " + openai_app_key) |
| 67 | openai.api_base = openai_app_key |
| 68 | self.OPENAI_API_KEY = openai_app_key |
| 69 | if openai_url_base is not None and openai_url_base != "" and self.OPENAI_API_BASE is None: |
| 70 | logging.info("set openai_url_base as " + openai_url_base) |
nothing calls this directly
no outgoing calls
no test coverage detected