MCPcopy Create free account
hub / github.com/GPTScan/GPTScan / Chat

Class Chat

src/chatgpt_api.py:27–118  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

25
26
27class Chat:
28 def __init__(self) -> None:
29 self.currentSession:List[Dict[str,str]] = []
30
31 def newSession(self) -> None:
32 self.currentSession = []
33
34 def sendMessages(self, message:str, GPT4=False) -> str:
35
36 # logger.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
37 # logger.info(f"Sending message: \n{message}")
38 # logger.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
39
40 self.currentSession.append({"role": "system", "content": SYSTEM_MESSAGE})
41 self.currentSession.append({"role": "user", "content": message})
42 while True:
43 try:
44 if GPT4:
45 openai.api_key = GPT4_API
46 response = openai.ChatCompletion.create(
47 # model="gpt-3.5-turbo-0301",
48 # model="gpt-3.5-turbo-0613",
49 # model="gpt-3.5-turbo",
50 model="gpt-4",
51 messages = self.currentSession,
52 temperature = 0,
53 top_p = 1.0
54 )
55 else:
56 response = openai.ChatCompletion.create(
57 model="gpt-3.5-turbo",
58 # model="gpt-3.5-turbo-0613",
59 # model="gpt-3.5-turbo",
60 # model="gpt-4",
61 messages = self.currentSession,
62 temperature = 0,
63 top_p = 1.0
64 )
65 break
66 except openai.error.RateLimitError as e1:
67 logger.warning("Trigger rate limit error, sleep 30 sec")
68 time.sleep(30)
69 except openai.InvalidRequestError as e2:
70 if e2.code == 'context_length_exceeded':
71 logger.error("Too long context, skip")
72 return "KeySentence: "
73 else:
74 logger.warning("Retry")
75 except openai.error.APIConnectionError as e3:
76 logger.warning("API Connection Error, Retry")
77 except openai.error.Timeout as e4:
78 logger.warning("Timeout, Retry")
79 except openai.error.APIError as e5:
80 if "502" in e5._message:
81 logger.warning("502 Bad Gateway, Retry")
82 logger.warning(traceback.format_exc())
83 # response = openai.Completion.create(
84 # # model="gpt-3.5-turbo",

Callers 1

ask_with_timeoutFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected