provider(openai): add chunk (#13) and rate limit
This commit is contained in:
parent
b2fd2566ab
commit
28de905b19
|
@ -19,11 +19,19 @@ class BaseOpenAIProvider(BavarderProvider):
|
|||
self.pref_win = None
|
||||
|
||||
def ask(self, prompt):
|
||||
prompt = self.chunk(prompt)
|
||||
try:
|
||||
response = self.chat.create(
|
||||
model=self.model, messages=[{"role": "user", "content": prompt}]
|
||||
)
|
||||
response = response.choices[0].message.content
|
||||
if isinstance(prompt, list):
|
||||
response = ""
|
||||
for chunk in prompt:
|
||||
response += self.chat.create(
|
||||
model=self.model, messages=[{"role": "user", "content": chunk}]
|
||||
).choices[0].message.content
|
||||
else:
|
||||
response = self.chat.create(
|
||||
model=self.model, messages=[{"role": "user", "content": prompt}]
|
||||
)
|
||||
response = response.choices[0].message.content
|
||||
except openai.error.AuthenticationError:
|
||||
self.no_api_key()
|
||||
return ""
|
||||
|
@ -32,6 +40,11 @@ class BaseOpenAIProvider(BavarderProvider):
|
|||
self.win.banner.props.button_label = ""
|
||||
self.win.banner.set_revealed(True)
|
||||
return ""
|
||||
except openai.error.RateLimitError:
|
||||
self.win.banner.props.title = "You exceeded your current quota, please check your plan and billing details."
|
||||
self.win.banner.props.button_label = ""
|
||||
self.win.banner.set_revealed(True)
|
||||
return ""
|
||||
except socket.gaierror:
|
||||
self.no_connection()
|
||||
return ""
|
||||
|
@ -56,7 +69,6 @@ class BaseOpenAIProvider(BavarderProvider):
|
|||
about_button.set_valign(Gtk.Align.CENTER)
|
||||
self.expander.add_action(about_button) # TODO: in Adw 1.4, use add_suffix
|
||||
|
||||
|
||||
self.api_row = Adw.PasswordEntryRow()
|
||||
self.api_row.connect("apply", self.on_apply)
|
||||
self.api_row.props.text = openai.api_key or ""
|
||||
|
|
Loading…
Reference in New Issue
Block a user