feat: chain of thought

This commit is contained in:
Florian Hönicke
2023-03-21 16:43:56 +01:00
parent 42305fbdb7
commit d1954317fc
8 changed files with 105 additions and 57 deletions

View File

@@ -4,7 +4,8 @@ from time import sleep
import openai
from openai.error import RateLimitError, Timeout
from src.utils.string import print_colored
from src.utils.io import timeout_generator_wrapper
from src.utils.string_tools import print_colored
openai.api_key = os.environ['OPENAI_API_KEY']
@@ -13,7 +14,7 @@ def get_response(system_definition, user_query):
print_colored('user_query', user_query, 'blue')
for i in range(10):
try:
response = openai.ChatCompletion.create(
response_generator = openai.ChatCompletion.create(
temperature=0,
max_tokens=5_000,
model="gpt-4",
@@ -32,15 +33,17 @@ def get_response(system_definition, user_query):
]
)
response_generator_with_timeout = timeout_generator_wrapper(response_generator, 5)
complete_string = ''
for chunk in response:
for chunk in response_generator_with_timeout:
delta = chunk['choices'][0]['delta']
if 'content' in delta:
content = delta['content']
print_colored('' if complete_string else 'Agent response:', content, 'green', end='')
complete_string += content
return complete_string
except (RateLimitError, Timeout) as e:
except (RateLimitError, Timeout, ConnectionError) as e:
print(e)
print('retrying')
sleep(3)