mirror of
https://github.com/aljazceru/dev-gpt.git
synced 2025-12-19 06:34:21 +01:00
refactor: cleanup
This commit is contained in:
@@ -1,6 +1,14 @@
|
|||||||
from dev_gpt.apis.gpt import ask_gpt
|
from dev_gpt.apis.gpt import ask_gpt
|
||||||
from dev_gpt.options.generate.parser import boolean_parser
|
from dev_gpt.options.generate.parser import boolean_parser
|
||||||
|
|
||||||
|
def is_question_true(question):
|
||||||
|
def fn(text):
|
||||||
|
return answer_yes_no_question(text, question)
|
||||||
|
return fn
|
||||||
|
|
||||||
|
def is_question_false(question):
|
||||||
|
return lambda context: not is_question_true(question)(context)
|
||||||
|
|
||||||
|
|
||||||
def answer_yes_no_question(text, question):
|
def answer_yes_no_question(text, question):
|
||||||
prompt = question_prompt.format(
|
prompt = question_prompt.format(
|
||||||
@@ -13,4 +21,5 @@ question_prompt = '''\
|
|||||||
{text}
|
{text}
|
||||||
{question}
|
{question}
|
||||||
Note: You must answer "yes" or "no".
|
Note: You must answer "yes" or "no".
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
|||||||
27
dev_gpt/options/generate/chains/translation.py
Normal file
27
dev_gpt/options/generate/chains/translation.py
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
from dev_gpt.apis.gpt import ask_gpt
|
||||||
|
from dev_gpt.options.generate.parser import identity_parser
|
||||||
|
|
||||||
|
|
||||||
|
def translation(from_format: str, to_format: str):
|
||||||
|
def fn(text_to_translate):
|
||||||
|
return translate(from_format, to_format, text_to_translate)
|
||||||
|
|
||||||
|
return fn
|
||||||
|
|
||||||
|
|
||||||
|
def translate(from_format, to_format, text_to_translate):
|
||||||
|
prompt = translation_prompt.format(
|
||||||
|
from_format=from_format,
|
||||||
|
to_format=to_format,
|
||||||
|
text_to_translate=text_to_translate
|
||||||
|
)
|
||||||
|
return ask_gpt(prompt, identity_parser)
|
||||||
|
|
||||||
|
|
||||||
|
translation_prompt = '''\
|
||||||
|
Translate the following {from_format} to a {to_format}:
|
||||||
|
```
|
||||||
|
{text_to_translate}
|
||||||
|
```
|
||||||
|
Note: You must not output anything else - just the translation.
|
||||||
|
Note: You must not add any formatting.'''
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
from dev_gpt.options.generate.chains.question_answering import answer_yes_no_question
|
|
||||||
|
|
||||||
|
|
||||||
def is_question_true(question):
|
|
||||||
def fn(text):
|
|
||||||
return answer_yes_no_question(text, question)
|
|
||||||
return fn
|
|
||||||
|
|
||||||
def is_question_false(question):
|
|
||||||
return lambda context: not is_question_true(question)(context)
|
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
from dev_gpt.apis import gpt
|
from dev_gpt.apis import gpt
|
||||||
from dev_gpt.apis.gpt import ask_gpt
|
from dev_gpt.apis.gpt import ask_gpt
|
||||||
from dev_gpt.options.generate.chains.auto_refine_description import auto_refine_description
|
from dev_gpt.options.generate.chains.auto_refine_description import auto_refine_description
|
||||||
|
from dev_gpt.options.generate.chains.question_answering import is_question_true
|
||||||
|
from dev_gpt.options.generate.chains.translation import translation
|
||||||
from dev_gpt.options.generate.chains.user_confirmation_feedback_loop import user_feedback_loop
|
from dev_gpt.options.generate.chains.user_confirmation_feedback_loop import user_feedback_loop
|
||||||
from dev_gpt.options.generate.condition import is_question_true
|
|
||||||
from dev_gpt.options.generate.chains.get_user_input_if_needed import get_user_input_if_needed
|
from dev_gpt.options.generate.chains.get_user_input_if_needed import get_user_input_if_needed
|
||||||
from dev_gpt.options.generate.parser import identity_parser
|
from dev_gpt.options.generate.parser import identity_parser
|
||||||
from dev_gpt.options.generate.ui import get_random_employee
|
from dev_gpt.options.generate.ui import get_random_employee
|
||||||
@@ -61,10 +62,19 @@ Description of the microservice:
|
|||||||
condition_question='Does the microservice send requests to an API?',
|
condition_question='Does the microservice send requests to an API?',
|
||||||
question_gen='Generate a question that asks for the endpoint and an example of a request and response when interacting with the external API.',
|
question_gen='Generate a question that asks for the endpoint and an example of a request and response when interacting with the external API.',
|
||||||
extension_name='Example of API usage',
|
extension_name='Example of API usage',
|
||||||
|
post_transformation_fn=translation(from_format='api instruction', to_format='python code snippet')
|
||||||
)
|
)
|
||||||
return microservice_description, test_description
|
return microservice_description, test_description
|
||||||
|
|
||||||
def user_input_extension_if_needed(self, context, microservice_description, condition_question, question_gen, extension_name):
|
def user_input_extension_if_needed(
|
||||||
|
self,
|
||||||
|
context,
|
||||||
|
microservice_description,
|
||||||
|
condition_question,
|
||||||
|
question_gen,
|
||||||
|
extension_name,
|
||||||
|
post_transformation_fn=None
|
||||||
|
):
|
||||||
user_answer = get_user_input_if_needed(
|
user_answer = get_user_input_if_needed(
|
||||||
context={
|
context={
|
||||||
'Microservice description': microservice_description,
|
'Microservice description': microservice_description,
|
||||||
@@ -77,6 +87,8 @@ Description of the microservice:
|
|||||||
question_gen_prompt_part=question_gen,
|
question_gen_prompt_part=question_gen,
|
||||||
)
|
)
|
||||||
if user_answer:
|
if user_answer:
|
||||||
|
if post_transformation_fn:
|
||||||
|
user_answer = post_transformation_fn(user_answer)
|
||||||
return f'\n{extension_name}: {user_answer}'
|
return f'\n{extension_name}: {user_answer}'
|
||||||
else:
|
else:
|
||||||
return ''
|
return ''
|
||||||
|
|||||||
Reference in New Issue
Block a user