-
Notifications
You must be signed in to change notification settings - Fork 1
/
openai_engine.py
36 lines (28 loc) · 1.27 KB
/
openai_engine.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import openai
import logging
import constants
from utils import get_secret
logging.basicConfig(level=logging.INFO)
def ask_openai(user_input=None, previous_conversation_response=None):
"""
:param user_input: user input
:param previous_conversation_response: prev conversation response in a list
:return: open ai response
"""
last_response = previous_conversation_response[-1]
try:
openai.api_key = get_secret(constants.OPENAI_API_KEY)
openai_response = openai.ChatCompletion.create(
model=constants.openai_model,
messages=[
{"role": "system", "content": f"{constants.initial_conversation}"},
{"role": "assistant", "content": f"{last_response}"},
{"role": "user", "content": f"{user_input}"},
]
)
previous_conversation_response.append(openai_response['choices'][0]['message']['content'])
logging.info("After appending " + str(previous_conversation_response[-1]))
except KeyError as e:
logging.info('OpenAI API key not set.')
exit(1)
return openai_response['choices'][0]['message']['content'], previous_conversation_response