From 10fc0b0d018b7baef4ac93c27c1daf465cb0f881 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Ho=CC=88nicke?= Date: Sat, 8 Apr 2023 23:31:53 +0200 Subject: [PATCH] refactor: docs refactor fixes --- README.md | 215 +++++++++++++++++--------------- main.py | 34 +++-- requirements.txt | 3 +- res/rhyme_generator_example.png | Bin 0 -> 132126 bytes src/constants.py | 7 +- src/gpt.py | 118 ++++++++++-------- src/key_handling.py | 69 ++++++++++ src/prompt_system.py | 1 + 8 files changed, 283 insertions(+), 164 deletions(-) create mode 100644 res/rhyme_generator_example.png create mode 100644 src/key_handling.py diff --git a/README.md b/README.md index 32619e1..ea626f6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

-GPT Deploy: The Microservice Magician 🧙🚀 +GPT Deploy: One line to create them all 🧙🚀

@@ -33,23 +33,29 @@ Your imagination is the limit!

This project streamlines the creation and deployment of microservices. Simply describe your task using natural language, and the system will automatically build and deploy your microservice. -To ensure the executor accurately aligns with your intended task, you can also provide test scenarios. +To ensure the microservice accurately aligns with your intended task a test scenario is required. -# Quickstart -## Installation +## Quickstart +### Installation ```bash pip install gptdeploy gptdeploy configure --key ``` If you set the environment variable `OPENAI_API_KEY`, the configuration step can be skipped. -## run +### run ```bash -gptdeploy --description "Given a PDF, return it's text" --test "https://www.africau.edu/images/default/sample.pdf" +gptdeploy create --description "Given a PDF, return it's text" --test "https://www.africau.edu/images/default/sample.pdf" ``` +To create your personal microservice two things are required: +- A `description` of the task you want to accomplish. +- A `test` scenario that ensures the microservice works as expected. +The creation process should take between 5 and 15 minutes. +During this time, GPT iteratively builds your microservice until it finds a strategy that make you test scenario pass. +Once the microservice is created and deployed, you can test it using the generated Streamlit playground. -# Overview +## Overview The graphic below illustrates the process of creating a microservice and deploying it to the cloud. ```mermaid graph TB @@ -85,29 +91,35 @@ graph TB - Creates a Streamlit playground where you can test the microservice. 6. If it fails 10 times in a row, it moves on to the next approach. -# Examples -## 3d model info +## Examples + +### Rhyme Generator ```bash -gptdeploy --description "Given a 3d object, return vertex count and face count" --test "https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/wolf.obj" +gptdeploy create --description "Given a word, return a list of rhyming words using the datamuse api" --test "hello" +``` +Rhyme Generator + +### 3d model info +```bash +gptdeploy create --description "Given a 3d object, return vertex count and face count" --test "https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/wolf.obj" ``` 3D Model Info -## Table extraction +### Table extraction ```bash --description "Given a URL, extract all tables as csv" --test "http://www.ins.tn/statistiques/90" ``` Table Extraction - -## Audio to mel spectrogram +### Audio to mel spectrogram ```bash -gptdeploy --description "Create mel spectrograms from audio file" --test "https://cdn.pixabay.com/download/audio/2023/02/28/audio_550d815fa5.mp3" +gptdeploy create --description "Create mel spectrograms from audio file" --test "https://cdn.pixabay.com/download/audio/2023/02/28/audio_550d815fa5.mp3" ``` Audio to Mel Spectrogram -## Text to speech +### Text to speech ```bash -gptdeploy --description "Convert text to speech" --test "Hello, welcome to GPT Deploy!" +gptdeploy create --description "Convert text to speech" --test "Hello, welcome to GPT Deploy!" ``` Text to Speech @@ -116,125 +128,123 @@ gptdeploy --description "Convert text to speech" --test "Hello, welcome to GPT D Your browser does not support the audio element. -## QR Code Generator +### QR Code Generator ```bash -gptdeploy --description "Generate QR code from URL" --test "https://www.example.com" +gptdeploy create --description "Generate QR code from URL" --test "https://www.example.com" ``` QR Code Generator -# TO BE TESTED -## ASCII Art Generator +## TO BE TESTED +### ASCII Art Generator ```bash -gptdeploy --description "Convert image to ASCII art" --test "https://images.unsplash.com/photo-1602738328654-51ab2ae6c4ff" +gptdeploy create --description "Convert image to ASCII art" --test "https://images.unsplash.com/photo-1602738328654-51ab2ae6c4ff" ``` -## Color Palette Generator +### Color Palette Generator ```bash -gptdeploy --description "creates aesthetically pleasing color palettes based on a seed color, using color theory principles like complementary or analogous colors" --test "red" +gptdeploy create --description "creates aesthetically pleasing color palettes based on a seed color, using color theory principles like complementary or analogous colors" --test "red" ``` -## Password Strength Checker +### Password Strength Checker ```bash -gptdeploy --description "Given a password, return a score from 1 to 10 indicating the strength of the password" --test "Pa$$w0rd" +gptdeploy create --description "Given a password, return a score from 1 to 10 indicating the strength of the password" --test "Pa$$w0rd" ``` -## Morse Code Translator +### Morse Code Translator ```bash -gptdeploy --description "Convert text to morse code" --test "Hello, welcome to GPT Deploy!" +gptdeploy create --description "Convert text to morse code" --test "Hello, welcome to GPT Deploy!" ``` -## IP Geolocation +### IP Geolocation ```bash -gptdeploy --description "Given an IP address, return the geolocation information" --test "142.251.46.174" +gptdeploy create --description "Given an IP address, return the geolocation information" --test "142.251.46.174" ``` -## Rhyme Generator +### Currency Converter ```bash -gptdeploy --description "Given a word, return a list of rhyming words using the datamuse api" --test "hello" +gptdeploy create --description "Converts any currency into any other" --test "1 usd to eur" ``` -## Currency Converter +### Image Resizer ```bash -gptdeploy --description "Converts any currency into any other" --test "1 usd to eur" +gptdeploy create --description "Given an image, resize it to a specified width and height" --test "https://images.unsplash.com/photo-1602738328654-51ab2ae6c4ff" ``` -## Image Resizer +### Weather API ```bash -gptdeploy --description "Given an image, resize it to a specified width and height" --test "https://images.unsplash.com/photo-1602738328654-51ab2ae6c4ff" -``` -## Weather API -```bash -gptdeploy --description "Given a city, return the current weather" --test "Berlin" +gptdeploy create --description "Given a city, return the current weather" --test "Berlin" ``` -## Sudoku Solver +### Sudoku Solver ```bash -gptdeploy --description "Given a sudoku puzzle, return the solution" --test "[[2, 5, 0, 0, 3, 0, 9, 0, 1], [0, 1, 0, 0, 0, 4, 0, 0, 0], [4, 0, 7, 0, 0, 0, 2, 0, 8], [0, 0, 5, 2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 9, 8, 1, 0, 0], [0, 4, 0, 0, 0, 3, 0, 0, 0], [0, 0, 0, 3, 6, 0, 0, 7, 2], [0, 7, 0, 0, 0, 0, 0, 0, 3], [9, 0, 3, 0, 0, 0, 6, 0, 4]]" +gptdeploy create --description "Given a sudoku puzzle, return the solution" --test "[[2, 5, 0, 0, 3, 0, 9, 0, 1], [0, 1, 0, 0, 0, 4, 0, 0, 0], [4, 0, 7, 0, 0, 0, 2, 0, 8], [0, 0, 5, 2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 9, 8, 1, 0, 0], [0, 4, 0, 0, 0, 3, 0, 0, 0], [0, 0, 0, 3, 6, 0, 0, 7, 2], [0, 7, 0, 0, 0, 0, 0, 0, 3], [9, 0, 3, 0, 0, 0, 6, 0, 4]]" ``` -## Carbon Footprint Calculator +### Carbon Footprint Calculator ```bash -gptdeploy --description "Estimate a company's carbon footprint based on factors like transportation, electricity usage, waste production etc..." --test "Jina AI" +gptdeploy create --description "Estimate a company's carbon footprint based on factors like transportation, electricity usage, waste production etc..." --test "Jina AI" ``` -## Real Estate Valuation Estimator +### Real Estate Valuation Estimator ```bash -gptdeploy --description "Create a microservice that estimates the value of a property based on factors like location, property type, age, and square footage." --test "Berlin Friedrichshain, Flat, 100m², 10 years old" -``` -## Chemical Structure Drawing -```bash -gptdeploy --description "Convert a chemical formula into a 2D chemical structure diagram" --test "C6H6" -``` - -## Gene Sequence Alignment -```bash -gptdeploy --description "Align two DNA or RNA sequences using the Needleman-Wunsch algorithm" --test "AGTC, GTCA" -``` - -## Markdown to HTML Converter -```bash -gptdeploy --description "Convert markdown to HTML" --test "# Hello, welcome to GPT Deploy!" -``` - -## Barcode Generator -```bash -gptdeploy --description "Generate a barcode from a string" --test "Hello, welcome to GPT Deploy!" -``` - -## File Compression -```bash -gptdeploy --description "Compress a file using the gzip algorithm" --test "content of the file: Hello, welcome to GPT Deploy!" -``` - -## Meme Generator -```bash -gptdeploy --description "Generate a meme from an image and a caption" --test "Surprised Pikachu: https://media.wired.com/photos/5f87340d114b38fa1f8339f9/master/w_1600%2Cc_limit/Ideas_Surprised_Pikachu_HD.jpg, TOP:When you see GPT Deploy create and deploy a microservice in seconds" -``` - -## Watermarking Images -```bash -gptdeploy --description "Add a watermark (GPT Deploy) to an image" --test "https://images.unsplash.com/photo-1602738328654-51ab2ae6c4ff" -``` - -## File Metadata Extractor -```bash -gptdeploy --description "Extract metadata from a file" --test "https://images.unsplash.com/photo-1602738328654-51ab2ae6c4ff" -``` - -## Video Thumbnail Extractor -```bash -gptdeploy --description "Extract a thumbnail from a video" --test "http://techslides.com/demos/sample-videos/small.mp4" -``` - -## Gif Maker -```bash -gptdeploy --description "Create a gif from a list of images" --test "https://images.unsplash.com/photo-1564725075388-cc8338732289, https://images.unsplash.com/photo-1584555684040-bad07f46a21f, https://images.unsplash.com/photo-1584555613497-9ecf9dd06f68" -``` - -## Heatmap Generator -```bash -gptdeploy --description "Create a heatmap from an image and a list of relative coordinates" --test "[[0.1, 0.2], [0.3, 0.4], [0.5, 0.6], [0.2, 0.1], [0.7, 0.2], [0.4, 0.2]]" +gptdeploy create --description "Create a microservice that estimates the value of a property based on factors like location, property type, age, and square footage." --test "Berlin Friedrichshain, Flat, 100m², 10 years old" ``` -# 🔮 vision +### Gene Sequence Alignment +```bash +gptdeploy create --description "Align two DNA or RNA sequences using the Needleman-Wunsch algorithm" --test "AGTC, GTCA" +``` + +### Markdown to HTML Converter +```bash +gptdeploy create --description "Convert markdown to HTML" --test "# Hello, welcome to GPT Deploy!" +``` + +### Barcode Generator +```bash +gptdeploy create --description "Generate a barcode from a string" --test "Hello, welcome to GPT Deploy!" +``` + +### File Compression +```bash +gptdeploy create --description "Compress a file using the gzip algorithm" --test "content of the file: Hello, welcome to GPT Deploy!" +``` + +### Meme Generator +```bash +gptdeploy create --description "Generate a meme from an image and a caption" --test "Surprised Pikachu: https://media.wired.com/photos/5f87340d114b38fa1f8339f9/master/w_1600%2Cc_limit/Ideas_Surprised_Pikachu_HD.jpg, TOP:When you see GPT Deploy create and deploy a microservice in seconds" +``` + +### Watermarking Images +```bash +gptdeploy create --description "Add a watermark (GPT Deploy) to an image" --test "https://images.unsplash.com/photo-1602738328654-51ab2ae6c4ff" +``` + +### File Metadata Extractor +```bash +gptdeploy create --description "Extract metadata from a file" --test "https://images.unsplash.com/photo-1602738328654-51ab2ae6c4ff" +``` + +### Video Thumbnail Extractor +```bash +gptdeploy create --description "Extract a thumbnail from a video" --test "http://techslides.com/demos/sample-videos/small.mp4" +``` + +### Gif Maker +```bash +gptdeploy create --description "Create a gif from a list of images" --test "https://images.unsplash.com/photo-1564725075388-cc8338732289, https://images.unsplash.com/photo-1584555684040-bad07f46a21f, https://images.unsplash.com/photo-1584555613497-9ecf9dd06f68" +``` + +### Heatmap Generator +```bash +gptdeploy create --description "Create a heatmap from an image and a list of relative coordinates" --test "https://images.unsplash.com/photo-1574786198875-49f5d09fe2d2, [[0.1, 0.2], [0.3, 0.4], [0.5, 0.6], [0.2, 0.1], [0.7, 0.2], [0.4, 0.2]]" +``` + +## Open Challenges +### Chemical Structure Drawing +```bash +gptdeploy create --description "Convert a chemical formula into a 2D chemical structure diagram" --test "C6H6" +``` + +## 🔮 vision Use natural language interface to create, deploy and update your microservice infrastructure. -# TODO +## TODO critical - [ ] add buttons to README.md - [ ] fix problem with package installation @@ -261,8 +271,9 @@ Make sure it is only printed twice in case it changed. - [ ] allow to update your microservice by providing feedback - [ ] bug: it can happen that the code generation is hanging forever - in this case aboard and redo the generation - [ ] feat: make playground more stylish by adding attributes like: clean design, beautiful, like it was made by a professional designer, ... +- [ ] support for other large language models like ChatGLM] -# challenging tasks: +## challenging tasks: - The executor takes an image as input and returns a list of bounding boxes of all animals in the image. - The executor takes 3D objects in obj format as input and outputs a 2D image rendering of that object where the full object is shown. - The executor takes an mp3 file as input and returns bpm and pitch. diff --git a/main.py b/main.py index 0b47794..e7b19bb 100644 --- a/main.py +++ b/main.py @@ -4,6 +4,7 @@ import click from src import gpt, jina_cloud from src.jina_cloud import push_executor, process_error_message, jina_auth_login +from src.key_handling import set_api_key from src.prompt_tasks import general_guidelines, executor_file_task, chain_of_thought_creation, test_executor_file_task, \ chain_of_thought_optimization, requirements_file_task, docker_file_task, not_allowed from src.utils.io import recreate_folder, persist_file @@ -15,6 +16,7 @@ import re from src.constants import FILE_AND_TAG_PAIRS +gpt_session = gpt.GPTSession() def extract_content_from_result(plain_text, file_name): pattern = fr"^\*\*{file_name}\*\*\n```(?:\w+\n)?([\s\S]*?)```" @@ -80,7 +82,7 @@ def create_executor( + executor_file_task(executor_name, description, test, package) + chain_of_thought_creation() ) - conversation = gpt.Conversation() + conversation = gpt_session.get_conversation() executor_content_raw = conversation.query(user_query) if is_chain_of_thought: executor_content_raw = conversation.query( @@ -95,7 +97,7 @@ def create_executor( + wrap_content_in_code_block(executor_content, 'executor.py', 'python') + test_executor_file_task(executor_name, test) ) - conversation = gpt.Conversation() + conversation = gpt_session.get_conversation() test_executor_content_raw = conversation.query(user_query) if is_chain_of_thought: test_executor_content_raw = conversation.query( @@ -113,7 +115,7 @@ def create_executor( + wrap_content_in_code_block(test_executor_content, 'test_executor.py', 'python') + requirements_file_task() ) - conversation = gpt.Conversation() + conversation = gpt_session.get_conversation() requirements_content_raw = conversation.query(user_query) if is_chain_of_thought: requirements_content_raw = conversation.query( @@ -130,7 +132,7 @@ def create_executor( + wrap_content_in_code_block(requirements_content, 'requirements.txt', '') + docker_file_task() ) - conversation = gpt.Conversation() + conversation = gpt_session.get_conversation() dockerfile_content_raw = conversation.query(user_query) if is_chain_of_thought: dockerfile_content_raw = conversation.query( @@ -150,7 +152,9 @@ def create_playground(executor_name, executor_path, host): + wrap_content_in_code_block(file_name_to_content['executor.py'], 'executor.py', 'python') + wrap_content_in_code_block(file_name_to_content['test_executor.py'], 'test_executor.py', 'python') + f''' -Create a playground for the executor {executor_name} using streamlit. +Create a playground for the executor {executor_name} using streamlit. +The playground must look like it was made by a professional designer. +All the ui elements are well thought out and the user experience is great. The executor is hosted on {host}. This is an example how you can connect to the executor assuming the document (d) is already defined: from jina import Client, Document, DocumentArray @@ -159,7 +163,7 @@ response = client.post('/', inputs=DocumentArray([d])) # always use '/' print(response[0].text) # can also be blob in case of image/audio..., this should be visualized in the streamlit app ''' ) - conversation = gpt.Conversation() + conversation = gpt_session.get_conversation() conversation.query(user_query) playground_content_raw = conversation.query( f"General rules: " + not_allowed() + chain_of_thought_optimization('python', 'app.py')) @@ -204,7 +208,7 @@ def debug_executor(output_path, package, description, test): f"...code...\n" f"```\n\n" ) - conversation = gpt.Conversation() + conversation = gpt_session.get_conversation() returned_files_raw = conversation.query(user_query) for file_name, tag in FILE_AND_TAG_PAIRS: updated_file = extract_content_from_result(returned_files_raw, file_name) @@ -226,7 +230,7 @@ class MaxDebugTimeReachedException(BaseException): def generate_executor_name(description): - conversation = gpt.Conversation() + conversation = gpt_session.get_conversation() user_query = f''' Generate a name for the executor matching the description: "{description}" @@ -271,20 +275,23 @@ package2,package3,... ... ``` ''' - conversation = gpt.Conversation() + conversation = gpt_session.get_conversation() packages_raw = conversation.query(user_query) packages_csv_string = extract_content_from_result(packages_raw, 'packages.csv') packages = [package.split(',') for package in packages_csv_string.split('\n')] packages = packages[:threads] return packages +@click.group(invoke_without_command=True) +def main(): + pass -@click.command() +@main.command() @click.option('--description', required=True, help='Description of the executor.') @click.option('--test', required=True, help='Test scenario for the executor.') @click.option('--num_approaches', default=3, type=int, help='Number of num_approaches to use to fulfill the task (default: 3).') @click.option('--output_path', default='executor', help='Path to the output folder (must be empty). ') -def main( +def create( description, test, num_approaches=3, @@ -320,6 +327,11 @@ def main( ) break +@main.command() +@click.option('--key', required=True, help='Your OpenAI API key.') +def configure(key): + set_api_key(key) + if __name__ == '__main__': main() \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 57552b8..06ad4cb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ jina==3.14.1 click==8.1.3 streamlit==1.20.0 -openai==0.27.4 \ No newline at end of file +openai==0.27.4 +psutil==5.9.4 \ No newline at end of file diff --git a/res/rhyme_generator_example.png b/res/rhyme_generator_example.png new file mode 100644 index 0000000000000000000000000000000000000000..893b46c7475d982183391cdc89d2cfed47443884 GIT binary patch literal 132126 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≪d@k`$SOB_=LzSmZ>k;>fqr2}l(htaDfzuphmz_w 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

l70gy=IuaC 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 c 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 literal 0 HcmV?d00001 diff --git a/src/constants.py b/src/constants.py index 3afa3e7..c44d4da 100644 --- a/src/constants.py +++ b/src/constants.py @@ -24,4 +24,9 @@ FILE_AND_TAG_PAIRS = [ EXECUTOR_FOLDER_v1 = 'executor_v1' EXECUTOR_FOLDER_v2 = 'executor_v2' -FLOW_URL_PLACEHOLDER = 'jcloud.jina.ai' \ No newline at end of file +FLOW_URL_PLACEHOLDER = 'jcloud.jina.ai' + +PRICING_GPT4_PROMPT = 0.03 +PRICING_GPT4_GENERATION = 0.06 +PRICING_GPT3_5_TURBO_PROMPT = 0.002 +PRICING_GPT3_5_TURBO_GENERATION = 0.002 \ No newline at end of file diff --git a/src/gpt.py b/src/gpt.py index bbb42e1..02631e4 100644 --- a/src/gpt.py +++ b/src/gpt.py @@ -5,46 +5,66 @@ from typing import List, Tuple import openai from openai.error import RateLimitError, Timeout +from src.constants import PRICING_GPT4_PROMPT, PRICING_GPT4_GENERATION, PRICING_GPT3_5_TURBO_PROMPT, \ + PRICING_GPT3_5_TURBO_GENERATION from src.prompt_system import system_base_definition from src.utils.io import timeout_generator_wrapper, GenerationTimeoutError from src.utils.string_tools import print_colored -PRICING_GPT4_PROMPT = 0.03 -PRICING_GPT4_GENERATION = 0.06 -PRICING_GPT3_5_TURBO_PROMPT = 0.002 -PRICING_GPT3_5_TURBO_GENERATION = 0.002 +class GPTSession: + def __init__(self): + self.get_openai_api_key() + if self.is_gpt4_available(): + self.supported_model = 'gpt-4' + self.pricing_prompt = PRICING_GPT4_PROMPT + self.pricing_generation = PRICING_GPT4_GENERATION + else: + self.supported_model = 'gpt-3.5-turbo' + self.pricing_prompt = PRICING_GPT3_5_TURBO_PROMPT + self.pricing_generation = PRICING_GPT3_5_TURBO_GENERATION + self.chars_prompt_so_far = 0 + self.chars_generation_so_far = 0 -if 'OPENAI_API_KEY' not in os.environ: - raise Exception('You need to set OPENAI_API_KEY in your environment') -openai.api_key = os.environ['OPENAI_API_KEY'] + def get_openai_api_key(self): + if 'OPENAI_API_KEY' not in os.environ: + raise Exception('You need to set OPENAI_API_KEY in your environment') + openai.api_key = os.environ['OPENAI_API_KEY'] + + def is_gpt4_available(self): + try: + openai.ChatCompletion.create( + model="gpt-4", + messages=[{ + "role": 'system', + "content": 'test' + }] + ) + return True + except openai.error.InvalidRequestError: + return False + + def cost_callback(self, chars_prompt, chars_generation): + self.chars_prompt_so_far += chars_prompt + self.chars_generation_so_far += chars_generation + print('\n') + money_prompt = round(self.chars_prompt_so_far / 3.4 * self.pricing_prompt / 1000, 2) + money_generation = round(self.chars_generation_so_far / 3.4 * self.pricing_generation / 1000, 2) + print('money prompt:', f'${money_prompt}') + print('money generation:', f'${money_generation}') + print('total money:', f'${money_prompt + money_generation}') + print('\n') + + def get_conversation(self): + return _GPTConversation(self.supported_model, self.cost_callback) -try: - openai.ChatCompletion.create( - model="gpt-4", - messages=[{ - "role": 'system', - "content": 'test' - }] - ) - supported_model = 'gpt-4' - pricing_prompt = PRICING_GPT4_PROMPT - pricing_generation = PRICING_GPT4_GENERATION -except openai.error.InvalidRequestError: - supported_model = 'gpt-3.5-turbo' - pricing_prompt = PRICING_GPT3_5_TURBO_PROMPT - pricing_generation = PRICING_GPT3_5_TURBO_GENERATION - -total_chars_prompt = 0 -total_chars_generation = 0 - - -class Conversation: - def __init__(self, prompt_list: List[Tuple[str, str]] = None, model=supported_model): +class _GPTConversation: + def __init__(self, model: str, cost_callback, prompt_list: List[Tuple[str, str]] = None): self.model = model if prompt_list is None: prompt_list = [('system', system_base_definition)] self.prompt_list = prompt_list + self.cost_callback = cost_callback print_colored('system', system_base_definition, 'magenta') def query(self, prompt: str): @@ -54,8 +74,18 @@ class Conversation: self.prompt_list.append(('assistant', response)) return response + def get_response_from_stream(self, response_generator): + response_generator_with_timeout = timeout_generator_wrapper(response_generator, 10) + complete_string = '' + 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 'assistent', content, 'green', end='') + complete_string += content + return complete_string + def get_response(self, prompt_list: List[Tuple[str, str]]): - global total_chars_prompt, total_chars_generation for i in range(10): try: response_generator = openai.ChatCompletion.create( @@ -71,27 +101,17 @@ class Conversation: for prompt in prompt_list ] ) - response_generator_with_timeout = timeout_generator_wrapper(response_generator, 10) - total_chars_prompt += sum(len(prompt[1]) for prompt in prompt_list) - complete_string = '' - 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 'assistent', content, 'green', end='') - complete_string += content - total_chars_generation += len(content) - print('\n') - money_prompt = round(total_chars_prompt / 3.4 * pricing_prompt / 1000, 2) - money_generation = round(total_chars_generation / 3.4 * pricing_generation / 1000, 2) - print('money prompt:', f'${money_prompt}') - print('money generation:', f'${money_generation}') - print('total money:', f'${money_prompt + money_generation}') - print('\n') - return complete_string + + complete_string = self.get_response_from_stream(response_generator) + except (RateLimitError, Timeout, ConnectionError, GenerationTimeoutError) as e: print(e) - print('retrying') + print('retrying, be aware that this affects the cost calculation') sleep(3) continue + chars_prompt = sum(len(prompt[1]) for prompt in prompt_list) + chars_generation = len(complete_string) + self.cost_callback(chars_prompt, chars_generation) + return complete_string raise Exception('Failed to get response') + diff --git a/src/key_handling.py b/src/key_handling.py new file mode 100644 index 0000000..3ea4726 --- /dev/null +++ b/src/key_handling.py @@ -0,0 +1,69 @@ +import os +import platform +import subprocess +import click + +try: + import psutil +except ImportError: + psutil = None + + +def get_shell(): + if psutil is None: + return None + + try: + p = psutil.Process(os.getpid()) + while p.parent() and p.parent().name() != "init": + p = p.parent() + return p.name() + except Exception as e: + click.echo(f"Error detecting shell: {e}") + return None + + +def set_env_variable(shell, key): + shell_config = { + "bash": {"config_file": "~/.bashrc", "export_line": f"export OPENAI_API_KEY={key}"}, + "zsh": {"config_file": "~/.zshrc", "export_line": f"export OPENAI_API_KEY={key}"}, + "fish": { + "config_file": "~/.config/fish/config.fish", + "export_line": f"set -gx OPENAI_API_KEY {key}", + }, + } + + if shell not in shell_config: + click.echo("Sorry, your shell is not supported.") + return + + config_file = os.path.expanduser(shell_config[shell]["config_file"]) + + with open(config_file, "a") as file: + file.write(f"\n{shell_config[shell]['export_line']}\n") + click.echo(f"OPENAI_API_KEY has been set in {config_file}.") + + +def set_api_key(key): + system_platform = platform.system().lower() + + if system_platform == "windows": + set_env_variable_command = f'setx OPENAI_API_KEY "{key}"' + subprocess.call(set_env_variable_command, shell=True) + click.echo("OPENAI_API_KEY has been set.") + elif system_platform in ["linux", "darwin"]: + if "OPENAI_API_KEY" in os.environ: + if not click.confirm("OPENAI_API_KEY is already set. Do you want to overwrite it?"): + click.echo("Aborted.") + return + + shell = get_shell() + if shell is None: + click.echo("Error: Unable to detect your shell or psutil is not available. Please set the environment variable manually.") + return + + set_env_variable(shell, key) + else: + click.echo("Sorry, this platform is not supported.") + + diff --git a/src/prompt_system.py b/src/prompt_system.py index 037ba61..3831a70 100644 --- a/src/prompt_system.py +++ b/src/prompt_system.py @@ -103,6 +103,7 @@ from jina import Client, Document, DocumentArray client = Client(host='{FLOW_URL_PLACEHOLDER}') d = Document(uri='...') d.load_uri_to_blob() +d.tags['style'] = 'abstract' # tags must be a flat dictionary where keys are strings and values are strings, ints, floats, or bools response = client.post('/', inputs=DocumentArray([d])) # the client must be called on '/' print(response[0].text) ```