(self, questions, system_assistant=None, assistant=None, temperature=None, need_stream=False)
| 101 | return None |
| 102 | |
| 103 | def chat(self, questions, system_assistant=None, assistant=None, temperature=None, need_stream=False): |
| 104 | try: |
| 105 | messages = [] |
| 106 | if system_assistant is not None: |
| 107 | messages.append({"role": "system", "content": system_assistant}) |
| 108 | if assistant is not None: |
| 109 | messages.append({"role": "assistant", "content": assistant}) |
| 110 | if isinstance(questions, list): |
| 111 | for index, question in enumerate(questions): |
| 112 | messages.append({"role": "user", "content": question}) |
| 113 | if isinstance(questions, str): |
| 114 | messages.append({"role": "user", "content": questions}) |
| 115 | response = None |
| 116 | if temperature is None: |
| 117 | print(self.MODEL_TYPE, messages) |
| 118 | response = openai.ChatCompletion.create( |
| 119 | model=self.MODEL_TYPE, |
| 120 | messages=messages, |
| 121 | ) |
| 122 | else: |
| 123 | if isinstance(temperature, float): |
| 124 | response = openai.ChatCompletion.create( |
| 125 | model=self.MODEL_TYPE, |
| 126 | messages=messages, |
| 127 | temperature=temperature, |
| 128 | ) |
| 129 | logging.info(response) |
| 130 | result = self.processResponse(response) |
| 131 | return result |
| 132 | except openai.error.AuthenticationError: |
| 133 | if len(self.app_keys) > 0: |
| 134 | available_key = self.find_valid_key() |
| 135 | openai.api_key = self.app_keys[0] |
| 136 | self.OPENAI_API_KEY = self.app_keys[0] |
| 137 | self.chat(questions, system_assistant, assistant, temperature, need_stream) |
| 138 | if available_key is None: |
| 139 | return "" |
| 140 | else: |
| 141 | logging.error("No valid keys found.") |
| 142 | return "" |
| 143 | except openai.error.OpenAIError as e: |
| 144 | if len(self.app_keys) > 0: |
| 145 | available_key = self.find_valid_key() |
| 146 | openai.api_key = self.app_keys[0] |
| 147 | self.OPENAI_API_KEY = self.app_keys[0] |
| 148 | self.chat(questions, system_assistant, assistant, temperature, need_stream) |
| 149 | if available_key is None: |
| 150 | return "" |
| 151 | else: |
| 152 | logging.error("No valid keys found.") |
| 153 | return "" |
| 154 | |
| 155 | def contextual_chat(self, questions, system_assistant=None, assistant=None, temperature=None, need_stream=False): |
| 156 | try: |
no test coverage detected