MCPcopy Create free account
hub / github.com/CL-lau/SQL-GPT / ChatGPT

Class ChatGPT

gpt/chat.py:13–269  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11
12
13class 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)

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected