From b32adf501d0f39ee0956bfda4d0f51fdc920fb10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Ho=CC=88nicke?= Date: Wed, 19 Apr 2023 01:03:24 +0200 Subject: [PATCH 1/3] docs: fix documentation --- src/apis/gpt.py | 2 +- src/cli.py | 6 +- src/options/generate/generator.py | 140 ++++++++++++------------- src/options/generate/templates_user.py | 5 +- 4 files changed, 74 insertions(+), 79 deletions(-) diff --git a/src/apis/gpt.py b/src/apis/gpt.py index ddf6a25..c7577c8 100644 --- a/src/apis/gpt.py +++ b/src/apis/gpt.py @@ -82,7 +82,7 @@ class _GPTConversation: self.messages.append(chat_message) if os.environ['VERBOSE'].lower() == 'true': print_colored('user', prompt, 'blue') - print_colored('assistant', '', 'green', end='') + print_colored('assistant', '', 'green', end='') response = self._chat([self.system_message] + self.messages) if os.environ['VERBOSE'].lower() == 'true': print() diff --git a/src/cli.py b/src/cli.py index 713c8c0..133318d 100644 --- a/src/cli.py +++ b/src/cli.py @@ -46,7 +46,7 @@ def main(ctx): @click.option('--description', required=True, help='Description of the microservice.') @click.option('--test', required=True, help='Test scenario for the microservice.') @click.option('--model', default='gpt-4', help='GPT model to use (default: gpt-4).') -@click.option('--verbose', default=False, is_flag=True, help='Verbose mode.') +@click.option('--verbose', default=False, is_flag=True, help='Verbose mode.') # only for development @path_param def generate( description, @@ -67,8 +67,8 @@ def generate( generator = Generator(description, test, model=model) with get_openai_callback() as cb: generator.generate(path) - print(f"Prompt/Completion/Total Tokens: {cb.prompt_tokens}/{cb.completion_tokens}/{cb.total_tokens}") - print(f"Total Cost on OpenAI (USD): ${cb.total_cost}") + # print(f"Prompt/Completion/Total Tokens: {cb.prompt_tokens}/{cb.completion_tokens}/{cb.total_tokens}") + # print(f"Total Cost on OpenAI (USD): ${cb.total_cost}") @main.command() @path_param diff --git a/src/options/generate/generator.py b/src/options/generate/generator.py index e3a93e0..2e27e2e 100644 --- a/src/options/generate/generator.py +++ b/src/options/generate/generator.py @@ -52,6 +52,26 @@ metas: all_microservice_files_string += f'**{file_name}**\n```{tag}\n{file_name_to_content[file_name]}\n```\n\n' return all_microservice_files_string.strip() + + def generate_and_persist_file(self, section_title, template, destination_folder, file_name, **kwargs): + print_colored('', f'\n############# {section_title} #############', 'blue') + conversation = self.gpt_session.get_conversation() + kwargs = {k: v for k, v in kwargs.items() if k in template.input_variables} + content_raw = conversation.chat( + template.format( + file_name=file_name, + **kwargs + ) + ) + content = self.extract_content_from_result(content_raw, file_name, match_single_block=True) + if content == '': + content_raw = conversation.chat(f'You must add the {file_name} code.') + content = self.extract_content_from_result( + content_raw, file_name, match_single_block=True + ) + persist_file(content, os.path.join(destination_folder, file_name)) + return content_raw + def generate_microservice( self, path, @@ -62,84 +82,58 @@ metas: MICROSERVICE_FOLDER_v1 = get_microservice_path(path, microservice_name, packages, num_approach, 1) os.makedirs(MICROSERVICE_FOLDER_v1) - print_colored('', '\n############# Microservice #############', 'blue') - conversation = self.gpt_session.get_conversation() - microservice_content_raw = conversation.chat( - template_generate_executor.format( - microservice_name=microservice_name, - microservice_description=self.task_description, - test=self.test_description, - packages=packages, - file_name_purpose=EXECUTOR_FILE_NAME, - tag_name=EXECUTOR_FILE_TAG, - file_name=EXECUTOR_FILE_NAME, - ) - ) - microservice_content = self.extract_content_from_result( - microservice_content_raw, 'microservice.py', match_single_block=True - ) - if microservice_content == '': - microservice_content_raw = conversation.chat('You must add the executor code.') - microservice_content = self.extract_content_from_result( - microservice_content_raw, 'microservice.py', match_single_block=True - ) - persist_file(microservice_content, os.path.join(MICROSERVICE_FOLDER_v1, 'microservice.py')) - - print_colored('', '\n############# Test Microservice #############', 'blue') - conversation = self.gpt_session.get_conversation() - test_microservice_content_raw = conversation.chat( - template_generate_test.format( - code_files_wrapped=self.files_to_string({'microservice.py': microservice_content}), - microservice_name=microservice_name, - test_description=self.test_description, - file_name_purpose=TEST_EXECUTOR_FILE_NAME, - tag_name=TEST_EXECUTOR_FILE_TAG, - file_name=TEST_EXECUTOR_FILE_NAME, - ) - ) - test_microservice_content = self.extract_content_from_result( - test_microservice_content_raw, 'microservice.py', match_single_block=True - ) - persist_file(test_microservice_content, os.path.join(MICROSERVICE_FOLDER_v1, 'test_microservice.py')) - - print_colored('', '\n############# Requirements #############', 'blue') - requirements_path = os.path.join(MICROSERVICE_FOLDER_v1, 'requirements.txt') - conversation = self.gpt_session.get_conversation() - requirements_content_raw = conversation.chat( - template_generate_requirements.format( - code_files_wrapped=self.files_to_string( - {'microservice.py': microservice_content, 'test_microservice.py': test_microservice_content} - ), - file_name_purpose=REQUIREMENTS_FILE_NAME, - file_name=REQUIREMENTS_FILE_NAME, - tag_name=REQUIREMENTS_FILE_TAG, - ) + microservice_content = self.generate_and_persist_file( + 'Microservice', + template_generate_executor, + MICROSERVICE_FOLDER_v1, + microservice_name=microservice_name, + microservice_description=self.task_description, + test_description=self.test_description, + packages=packages, + file_name_purpose=EXECUTOR_FILE_NAME, + tag_name=EXECUTOR_FILE_TAG, + file_name=EXECUTOR_FILE_NAME, ) - requirements_content = self.extract_content_from_result(requirements_content_raw, 'requirements.txt', - match_single_block=True) - persist_file(requirements_content, requirements_path) + test_microservice_content = self.generate_and_persist_file( + 'Test Microservice', + template_generate_test, + MICROSERVICE_FOLDER_v1, + code_files_wrapped=self.files_to_string({'microservice.py': microservice_content}), + microservice_name=microservice_name, + microservice_description=self.task_description, + test_description=self.test_description, + file_name_purpose=TEST_EXECUTOR_FILE_NAME, + tag_name=TEST_EXECUTOR_FILE_TAG, + file_name=TEST_EXECUTOR_FILE_NAME, + ) - print_colored('', '\n############# Dockerfile #############', 'blue') - conversation = self.gpt_session.get_conversation() - dockerfile_content_raw = conversation.chat( - template_generate_dockerfile.format( - code_files_wrapped=self.files_to_string( - { - 'microservice.py': microservice_content, - 'test_microservice.py': test_microservice_content, - 'requirements.txt': requirements_content, - } - ), - file_name_purpose=DOCKER_FILE_NAME, - file_name=DOCKER_FILE_NAME, - tag_name=DOCKER_FILE_TAG, - ) + requirements_content = self.generate_and_persist_file( + 'Requirements', + template_generate_requirements, + MICROSERVICE_FOLDER_v1, + code_files_wrapped=self.files_to_string({ + 'microservice.py': microservice_content, + 'test_microservice.py': test_microservice_content + }), + file_name_purpose=REQUIREMENTS_FILE_NAME, + file_name=REQUIREMENTS_FILE_NAME, + tag_name=REQUIREMENTS_FILE_TAG, ) - dockerfile_content = self.extract_content_from_result( - dockerfile_content_raw, 'Dockerfile', match_single_block=True + + self.generate_and_persist_file( + 'Dockerfile', + template_generate_dockerfile, + MICROSERVICE_FOLDER_v1, + code_files_wrapped=self.files_to_string({ + 'microservice.py': microservice_content, + 'test_microservice.py': test_microservice_content, + 'requirements.txt': requirements_content + }), + file_name_purpose=DOCKER_FILE_NAME, + file_name=DOCKER_FILE_NAME, + tag_name=DOCKER_FILE_TAG, ) - persist_file(dockerfile_content, os.path.join(MICROSERVICE_FOLDER_v1, 'Dockerfile')) self.write_config_yml(microservice_name, MICROSERVICE_FOLDER_v1) print('\nFirst version of the microservice generated. Start iterating on it to make the tests pass...') diff --git a/src/options/generate/templates_user.py b/src/options/generate/templates_user.py index e9e92bd..03d58fb 100644 --- a/src/options/generate/templates_user.py +++ b/src/options/generate/templates_user.py @@ -90,7 +90,7 @@ template_generate_executor = PromptTemplate.from_template( Write the executor called '{microservice_name}'. The name is very important to keep. It matches the following description: '{microservice_description}'. -It will be tested with the following scenario: '{test}'. +It will be tested with the following scenario: '{test_description}'. For the implementation use the following package: '{packages}'. Obey the following rules: @@ -101,7 +101,7 @@ Your approach: 1. Identify the core challenge when implementing the executor. 2. Think about solutions for these challenges. 3. Decide for one of the solutions. -4. Write the code. +4. Write the code for the executor. Don't write code for the test. ''' + '\n' + template_code_wrapping_string ) @@ -264,6 +264,7 @@ template_generate_playground = PromptTemplate.from_template( Create a playground for the executor {microservice_name} using streamlit. The playground must look like it was made by a professional designer. All the ui elements are well thought out to make them visually appealing and easy to use. +The playground contains emojis that fit the theme of the playground. This is an example how you can connect to the executor assuming the document (d) is already defined: ``` from jina import Client, Document, DocumentArray From f513277a0507f07e47fa517148bd0a96a0b139b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Ho=CC=88nicke?= Date: Wed, 19 Apr 2023 02:00:33 +0200 Subject: [PATCH 2/3] docs: fix documentation --- README.md | 13 ++++++++++++- res/recommendation_example.png | Bin 0 -> 95319 bytes 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 res/recommendation_example.png diff --git a/README.md b/README.md index 9558a7f..ade02ec 100644 --- a/README.md +++ b/README.md @@ -98,6 +98,7 @@ jc delete ## Examples In this section you can get a feeling for the kind of microservices that can be generated with GPT Deploy. + ### Chemical Formula Visualization ```bash gptdeploy generate \ @@ -118,7 +119,17 @@ gptdeploy generate \ ``` 2D Rendering of 3D Model -## Hacker News Search +### Product Recommendation +```bash +gptdeploy generate \ +--description "Generate personalized product recommendations based on user product browsing history and the product categories fashion, electronics and sport" --test "Test that a user how visited p1(electronics),p2(fashion),p3(fashion) is more likely to buy p4(fashion) than p5(sports)" \ +--model gpt-4 \ +--path microservice \ +--verbose +``` +Product Recommendation + +### Hacker News Search ```bash gptdeploy generate \ --description "Given a search query, find articles on hacker news using the hacker news api and return a list of (title, author, website_link, first_image_on_the_website)" \ diff --git a/res/recommendation_example.png b/res/recommendation_example.png new file mode 100644 index 0000000000000000000000000000000000000000..79159767be9dde991744a699ad6fd59c069a933f GIT binary patch literal 95319 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

V4_ih2UO!% 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 literal 0 HcmV?d00001 From 0af51e4bd86fa35add9efe32e73b99d1f7a81e2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Ho=CC=88nicke?= Date: Wed, 19 Apr 2023 10:44:14 +0200 Subject: [PATCH 3/3] docs: implement feedback --- src/apis/gpt.py | 2 +- src/cli.py | 6 ++---- src/options/generate/generator.py | 6 +++--- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/apis/gpt.py b/src/apis/gpt.py index c7577c8..512f05b 100644 --- a/src/apis/gpt.py +++ b/src/apis/gpt.py @@ -69,7 +69,7 @@ class _GPTConversation: model_name=model, streaming=True, callback_manager=CallbackManager([AssistantStreamingStdOutCallbackHandler()]), - verbose=os.environ['VERBOSE'].lower() == 'true', + verbose=True, temperature=0, ) self.messages: List[BaseMessage] = [] diff --git a/src/cli.py b/src/cli.py index 133318d..0485bf5 100644 --- a/src/cli.py +++ b/src/cli.py @@ -65,10 +65,8 @@ def generate( from src.options.generate.generator import Generator generator = Generator(description, test, model=model) - with get_openai_callback() as cb: - generator.generate(path) - # print(f"Prompt/Completion/Total Tokens: {cb.prompt_tokens}/{cb.completion_tokens}/{cb.total_tokens}") - # print(f"Total Cost on OpenAI (USD): ${cb.total_cost}") + generator.generate(path) + @main.command() @path_param diff --git a/src/options/generate/generator.py b/src/options/generate/generator.py index 2e27e2e..97e9132 100644 --- a/src/options/generate/generator.py +++ b/src/options/generate/generator.py @@ -53,14 +53,14 @@ metas: return all_microservice_files_string.strip() - def generate_and_persist_file(self, section_title, template, destination_folder, file_name, **kwargs): + def generate_and_persist_file(self, section_title, template, destination_folder, file_name, **template_kwargs): print_colored('', f'\n############# {section_title} #############', 'blue') conversation = self.gpt_session.get_conversation() - kwargs = {k: v for k, v in kwargs.items() if k in template.input_variables} + template_kwargs = {k: v for k, v in template_kwargs.items() if k in template.input_variables} content_raw = conversation.chat( template.format( file_name=file_name, - **kwargs + **template_kwargs ) ) content = self.extract_content_from_result(content_raw, file_name, match_single_block=True)