gpt_enterprise.employee
👩 Employee 👩
1""" 2\U0001F469 3Employee 4\U0001F469 5""" 6 7import os 8from typing import List, Tuple 9 10from gpt_enterprise.gpt_utils import generate_text, generate_image 11 12 13class Employee: 14 """ 15 The Employee class represents an employee that act as the given system prompt. 16 It can be used to do all you want, just tell him how to act. 17 """ 18 19 def __init__( 20 self, 21 role_name: str, 22 role_filename: str = None, 23 role_prompt: str = None, 24 name: str = "GUY", 25 emoji: str = "\U0001F469", 26 creativity: float = 1.0, 27 gpt_version: str = os.getenv("GPT_VERSION", "gpt-3.5-turbo"), # TODO 28 ): 29 """ 30 Give your employee a role file for him to read it and act like you want. 31 32 Employe name and role name form the unique identifier for the employee. 33 34 Args: 35 role_filename (str): Path to prompt file 36 role_prompt (str): Prompt string 37 role_name (str): Role name 38 name (str, optional): _description_. Defaults to "GUY". 39 creativity (float, optional): _description_. Defaults to 1.0. 40 gpt_version (str, optional): _description_. Defaults to "gpt-3.5-turbo". 41 """ 42 if not role_prompt and role_filename: 43 with open(role_filename, "r") as file: 44 self.role = file.read() 45 elif role_prompt: 46 self.role = role_prompt 47 else: 48 print( 49 "Your employee role prompt is not clear, please provide a role_filename or a role_prompt. " 50 "He will just be a helpfull amployee." 51 ) 52 self.role = "You are a helpfull employee." 53 self.role_name = role_name 54 if not role_name: 55 self.role_name = "employee" 56 self.name = name 57 self.emoji = emoji 58 try: 59 print( 60 f"\n {self.emoji} Hi, I'm a {self.role_name}, my name is {self.name}.\n" 61 ) 62 except Exception: 63 self.emoji = "\U0001F469" 64 print( 65 f"\n {self.emoji} Hi, I'm a {self.role_name}, my name is {self.name}.\n" 66 ) 67 self.creativity = creativity 68 self.gpt_version = gpt_version 69 70 def ask_task(self, manager_request: str) -> str: 71 """ 72 Ask employee to do the given task. 73 74 Args: 75 manager_request (str): The manager request (it can be rude... but may not ^^) 76 77 Returns: 78 str: The employee response as text string 79 """ 80 response = "" 81 try: 82 response = generate_text( 83 system_prompt=self.role, 84 user_prompt=manager_request, 85 model=self.gpt_version, 86 temperature=self.creativity, 87 ) 88 response = response.choices[0].message.content 89 except Exception as err: 90 print(f"\n {self.emoji} {self.name}: {err}\n") 91 print( 92 f"\n {self.emoji} {self.name}: As a {self.role_name}, here is my work: {response}\n" 93 ) 94 return response 95 96 def ask_image( 97 self, 98 manager_request: str, 99 output_directory: str, 100 base_name: str = "img", 101 nb_image: int = 1, 102 ) -> Tuple[str, List[str]]: 103 """ 104 Ask the employee to create an image with the specified manager request. 105 The employee will generate a prompt and ask DALL-E to generate the specified 106 number of images. 107 108 Args: 109 manager_request (str): The manager request (it can be rude... but may not ^^) 110 output_directory (str): Output directory 111 base_name (str): The base name of the image. Defaults to img 112 nb_image (int, optional): _description_. Defaults to 1. 113 114 Returns: 115 Tuple[str, List[str]]: The generated prompt and list of images paths 116 """ 117 prompt = "" 118 image_paths = [] 119 try: 120 prompt, image_paths = generate_image( 121 system_prompt=self.role, 122 base_name=base_name, 123 user_prompt=manager_request, 124 output_directory=output_directory, 125 nb_image=nb_image, 126 ) 127 except Exception as err: 128 print(f"\n {self.emoji} {self.name}: {err}\n") 129 print( 130 f"\n {self.emoji} {self.name}: As a {self.role_name} " 131 f"image generator, here is the image description I made: {prompt}. \n " 132 f"Image paths are {image_paths} \n" 133 ) 134 return prompt, image_paths
class
Employee:
14class Employee: 15 """ 16 The Employee class represents an employee that act as the given system prompt. 17 It can be used to do all you want, just tell him how to act. 18 """ 19 20 def __init__( 21 self, 22 role_name: str, 23 role_filename: str = None, 24 role_prompt: str = None, 25 name: str = "GUY", 26 emoji: str = "\U0001F469", 27 creativity: float = 1.0, 28 gpt_version: str = os.getenv("GPT_VERSION", "gpt-3.5-turbo"), # TODO 29 ): 30 """ 31 Give your employee a role file for him to read it and act like you want. 32 33 Employe name and role name form the unique identifier for the employee. 34 35 Args: 36 role_filename (str): Path to prompt file 37 role_prompt (str): Prompt string 38 role_name (str): Role name 39 name (str, optional): _description_. Defaults to "GUY". 40 creativity (float, optional): _description_. Defaults to 1.0. 41 gpt_version (str, optional): _description_. Defaults to "gpt-3.5-turbo". 42 """ 43 if not role_prompt and role_filename: 44 with open(role_filename, "r") as file: 45 self.role = file.read() 46 elif role_prompt: 47 self.role = role_prompt 48 else: 49 print( 50 "Your employee role prompt is not clear, please provide a role_filename or a role_prompt. " 51 "He will just be a helpfull amployee." 52 ) 53 self.role = "You are a helpfull employee." 54 self.role_name = role_name 55 if not role_name: 56 self.role_name = "employee" 57 self.name = name 58 self.emoji = emoji 59 try: 60 print( 61 f"\n {self.emoji} Hi, I'm a {self.role_name}, my name is {self.name}.\n" 62 ) 63 except Exception: 64 self.emoji = "\U0001F469" 65 print( 66 f"\n {self.emoji} Hi, I'm a {self.role_name}, my name is {self.name}.\n" 67 ) 68 self.creativity = creativity 69 self.gpt_version = gpt_version 70 71 def ask_task(self, manager_request: str) -> str: 72 """ 73 Ask employee to do the given task. 74 75 Args: 76 manager_request (str): The manager request (it can be rude... but may not ^^) 77 78 Returns: 79 str: The employee response as text string 80 """ 81 response = "" 82 try: 83 response = generate_text( 84 system_prompt=self.role, 85 user_prompt=manager_request, 86 model=self.gpt_version, 87 temperature=self.creativity, 88 ) 89 response = response.choices[0].message.content 90 except Exception as err: 91 print(f"\n {self.emoji} {self.name}: {err}\n") 92 print( 93 f"\n {self.emoji} {self.name}: As a {self.role_name}, here is my work: {response}\n" 94 ) 95 return response 96 97 def ask_image( 98 self, 99 manager_request: str, 100 output_directory: str, 101 base_name: str = "img", 102 nb_image: int = 1, 103 ) -> Tuple[str, List[str]]: 104 """ 105 Ask the employee to create an image with the specified manager request. 106 The employee will generate a prompt and ask DALL-E to generate the specified 107 number of images. 108 109 Args: 110 manager_request (str): The manager request (it can be rude... but may not ^^) 111 output_directory (str): Output directory 112 base_name (str): The base name of the image. Defaults to img 113 nb_image (int, optional): _description_. Defaults to 1. 114 115 Returns: 116 Tuple[str, List[str]]: The generated prompt and list of images paths 117 """ 118 prompt = "" 119 image_paths = [] 120 try: 121 prompt, image_paths = generate_image( 122 system_prompt=self.role, 123 base_name=base_name, 124 user_prompt=manager_request, 125 output_directory=output_directory, 126 nb_image=nb_image, 127 ) 128 except Exception as err: 129 print(f"\n {self.emoji} {self.name}: {err}\n") 130 print( 131 f"\n {self.emoji} {self.name}: As a {self.role_name} " 132 f"image generator, here is the image description I made: {prompt}. \n " 133 f"Image paths are {image_paths} \n" 134 ) 135 return prompt, image_paths
The Employee class represents an employee that act as the given system prompt. It can be used to do all you want, just tell him how to act.
Employee( role_name: str, role_filename: str = None, role_prompt: str = None, name: str = 'GUY', emoji: str = '👩', creativity: float = 1.0, gpt_version: str = 'gpt-3.5-turbo')
20 def __init__( 21 self, 22 role_name: str, 23 role_filename: str = None, 24 role_prompt: str = None, 25 name: str = "GUY", 26 emoji: str = "\U0001F469", 27 creativity: float = 1.0, 28 gpt_version: str = os.getenv("GPT_VERSION", "gpt-3.5-turbo"), # TODO 29 ): 30 """ 31 Give your employee a role file for him to read it and act like you want. 32 33 Employe name and role name form the unique identifier for the employee. 34 35 Args: 36 role_filename (str): Path to prompt file 37 role_prompt (str): Prompt string 38 role_name (str): Role name 39 name (str, optional): _description_. Defaults to "GUY". 40 creativity (float, optional): _description_. Defaults to 1.0. 41 gpt_version (str, optional): _description_. Defaults to "gpt-3.5-turbo". 42 """ 43 if not role_prompt and role_filename: 44 with open(role_filename, "r") as file: 45 self.role = file.read() 46 elif role_prompt: 47 self.role = role_prompt 48 else: 49 print( 50 "Your employee role prompt is not clear, please provide a role_filename or a role_prompt. " 51 "He will just be a helpfull amployee." 52 ) 53 self.role = "You are a helpfull employee." 54 self.role_name = role_name 55 if not role_name: 56 self.role_name = "employee" 57 self.name = name 58 self.emoji = emoji 59 try: 60 print( 61 f"\n {self.emoji} Hi, I'm a {self.role_name}, my name is {self.name}.\n" 62 ) 63 except Exception: 64 self.emoji = "\U0001F469" 65 print( 66 f"\n {self.emoji} Hi, I'm a {self.role_name}, my name is {self.name}.\n" 67 ) 68 self.creativity = creativity 69 self.gpt_version = gpt_version
Give your employee a role file for him to read it and act like you want.
Employe name and role name form the unique identifier for the employee.
Arguments:
- role_filename (str): Path to prompt file
- role_prompt (str): Prompt string
- role_name (str): Role name
- name (str, optional): _description_. Defaults to "GUY".
- creativity (float, optional): _description_. Defaults to 1.0.
- gpt_version (str, optional): _description_. Defaults to "gpt-3.5-turbo".
def
ask_task(self, manager_request: str) -> str:
71 def ask_task(self, manager_request: str) -> str: 72 """ 73 Ask employee to do the given task. 74 75 Args: 76 manager_request (str): The manager request (it can be rude... but may not ^^) 77 78 Returns: 79 str: The employee response as text string 80 """ 81 response = "" 82 try: 83 response = generate_text( 84 system_prompt=self.role, 85 user_prompt=manager_request, 86 model=self.gpt_version, 87 temperature=self.creativity, 88 ) 89 response = response.choices[0].message.content 90 except Exception as err: 91 print(f"\n {self.emoji} {self.name}: {err}\n") 92 print( 93 f"\n {self.emoji} {self.name}: As a {self.role_name}, here is my work: {response}\n" 94 ) 95 return response
Ask employee to do the given task.
Arguments:
- manager_request (str): The manager request (it can be rude... but may not ^^)
Returns:
str: The employee response as text string
def
ask_image( self, manager_request: str, output_directory: str, base_name: str = 'img', nb_image: int = 1) -> Tuple[str, List[str]]:
97 def ask_image( 98 self, 99 manager_request: str, 100 output_directory: str, 101 base_name: str = "img", 102 nb_image: int = 1, 103 ) -> Tuple[str, List[str]]: 104 """ 105 Ask the employee to create an image with the specified manager request. 106 The employee will generate a prompt and ask DALL-E to generate the specified 107 number of images. 108 109 Args: 110 manager_request (str): The manager request (it can be rude... but may not ^^) 111 output_directory (str): Output directory 112 base_name (str): The base name of the image. Defaults to img 113 nb_image (int, optional): _description_. Defaults to 1. 114 115 Returns: 116 Tuple[str, List[str]]: The generated prompt and list of images paths 117 """ 118 prompt = "" 119 image_paths = [] 120 try: 121 prompt, image_paths = generate_image( 122 system_prompt=self.role, 123 base_name=base_name, 124 user_prompt=manager_request, 125 output_directory=output_directory, 126 nb_image=nb_image, 127 ) 128 except Exception as err: 129 print(f"\n {self.emoji} {self.name}: {err}\n") 130 print( 131 f"\n {self.emoji} {self.name}: As a {self.role_name} " 132 f"image generator, here is the image description I made: {prompt}. \n " 133 f"Image paths are {image_paths} \n" 134 ) 135 return prompt, image_paths
Ask the employee to create an image with the specified manager request. The employee will generate a prompt and ask DALL-E to generate the specified number of images.
Arguments:
- manager_request (str): The manager request (it can be rude... but may not ^^)
- output_directory (str): Output directory
- base_name (str): The base name of the image. Defaults to img
- nb_image (int, optional): _description_. Defaults to 1.
Returns:
Tuple[str, List[str]]: The generated prompt and list of images paths