fix: fix bring back the test description for func generation

This commit is contained in:
Florian Hönicke
2023-05-26 13:30:56 +02:00
parent a7d5cec0bd
commit 5796244e4a
3 changed files with 32 additions and 5 deletions

View File

@@ -16,7 +16,7 @@ from urllib3.exceptions import InvalidChunkLength
from dev_gpt.constants import PRICING_GPT4_PROMPT, PRICING_GPT4_GENERATION, PRICING_GPT3_5_TURBO_PROMPT, \
PRICING_GPT3_5_TURBO_GENERATION, CHARS_PER_TOKEN
from dev_gpt.options.generate.conversation_logger import ConversationLogger
from dev_gpt.options.generate.conversation_logger import ConversationLogger, Timer
from dev_gpt.options.generate.parser import identity_parser
from dev_gpt.options.generate.templates_system import template_system_message_base
from dev_gpt.utils.string_tools import print_colored, get_template_parameters
@@ -128,14 +128,15 @@ class _GPTConversation:
self.conversation_logger = conversation_logger
def print_messages(self, messages):
t = Timer().get_time_since_start()
for i, message in enumerate(messages):
if os.environ['VERBOSE'].lower() == 'true':
if isinstance(message, SystemMessage):
print_colored(f'({i}) system - prompt', message.content, 'magenta')
print_colored(f'{t} - ({i}) system - prompt', message.content, 'magenta')
elif isinstance(message, HumanMessage):
print_colored(f'({i}) user - prompt', message.content, 'blue')
print_colored(f'{t} - ({i}) user - prompt', message.content, 'blue')
elif isinstance(message, AIMessage):
print_colored(f'({i}) assistant - prompt', message.content, 'green')
print_colored(f'{t} - ({i}) assistant - prompt', message.content, 'green')
def chat(self, prompt: str, role: str = 'user'):
MassageClass = HumanMessage if role == 'user' else SystemMessage
@@ -143,7 +144,7 @@ class _GPTConversation:
self.messages.append(chat_message)
self.print_messages(self.messages)
if self.print_stream:
print_colored('assistant', '', 'green', end='')
print_colored(f'{Timer().get_time_since_start()} - assistant', '', 'green', end='')
print('thinking...')
for i in range(10):
try:

View File

@@ -7,6 +7,8 @@ import click
from dev_gpt.apis.gpt import configure_openai_api_key
from dev_gpt.apis.jina_cloud import jina_auth_login
from dev_gpt.options.configure.key_handling import set_api_key
from dev_gpt.options.generate.conversation_logger import Timer
def openai_api_key_needed(func):
def wrapper(*args, **kwargs):
@@ -44,6 +46,7 @@ def path_param(func):
@click.pass_context
@exception_interceptor
def main(ctx):
Timer() # start timer
if ctx.invoked_subcommand is None:
click.echo(ctx.get_help())

View File

@@ -25,4 +25,27 @@ class ConversationLogger:
f.write(json.dumps(self.log_file, indent=2))
import datetime
class Singleton(type):
_instances = {}
def __call__(cls, *args, **kwargs):
if cls not in cls._instances:
cls._instances[cls] = super().__call__(*args, **kwargs)
return cls._instances[cls]
class Timer(metaclass=Singleton):
def __init__(self):
if not hasattr(self, "start_time"):
self.start_time = datetime.datetime.now()
def get_time_since_start(self):
now = datetime.datetime.now()
time_diff = now - self.start_time
minutes, seconds = divmod(time_diff.seconds, 60)
if minutes > 0:
return f"{minutes}m, {seconds}s"
else:
return f"{seconds}s"