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".
role_name
name
emoji
creativity
gpt_version
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