(self, inference_fn: InferenceFunction, provider_details: ProviderDetails, inference_request: InferenceRequest)
| 134 | self.announcer = InferenceAnnouncer(sse_topic) |
| 135 | |
| 136 | def __error_handler__(self, inference_fn: InferenceFunction, provider_details: ProviderDetails, inference_request: InferenceRequest): |
| 137 | logger.info(f"Requesting inference from {inference_request.model_name} on {inference_request.model_provider}") |
| 138 | infer_result = InferenceResult( |
| 139 | uuid=inference_request.uuid, |
| 140 | model_name=inference_request.model_name, |
| 141 | model_tag=inference_request.model_tag, |
| 142 | model_provider=inference_request.model_provider, |
| 143 | token=None, |
| 144 | probability=None, |
| 145 | top_n_distribution=None |
| 146 | ) |
| 147 | |
| 148 | if not self.announcer.announce(InferenceResult( |
| 149 | uuid=inference_request.uuid, |
| 150 | model_name=inference_request.model_name, |
| 151 | model_tag=inference_request.model_tag, |
| 152 | model_provider=inference_request.model_provider, |
| 153 | token="[INITIALIZING]", |
| 154 | probability=None, |
| 155 | top_n_distribution=None |
| 156 | ), event="status"): |
| 157 | return |
| 158 | |
| 159 | try: |
| 160 | inference_fn(provider_details, inference_request) |
| 161 | except openai.error.Timeout as e: |
| 162 | infer_result.token = f"[ERROR] OpenAI API request timed out: {e}" |
| 163 | logger.error(f"OpenAI API request timed out: {e}") |
| 164 | except openai.error.APIError as e: |
| 165 | infer_result.token = f"[ERROR] OpenAI API returned an API Error: {e}" |
| 166 | logger.error(f"OpenAI API returned an API Error: {e}") |
| 167 | except openai.error.APIConnectionError as e: |
| 168 | infer_result.token = f"[ERROR] OpenAI API request failed to connect: {e}" |
| 169 | logger.error(f"OpenAI API request failed to connect: {e}") |
| 170 | except openai.error.InvalidRequestError as e: |
| 171 | infer_result.token = f"[ERROR] OpenAI API request was invalid: {e}" |
| 172 | logger.error(f"OpenAI API request was invalid: {e}") |
| 173 | except openai.error.AuthenticationError as e: |
| 174 | infer_result.token = f"[ERROR] OpenAI API request was not authorized: {e}" |
| 175 | logger.error(f"OpenAI API request was not authorized: {e}") |
| 176 | except openai.error.PermissionError as e: |
| 177 | infer_result.token = f"[ERROR] OpenAI API request was not permitted: {e}" |
| 178 | logger.error(f"OpenAI API request was not permitted: {e}") |
| 179 | except openai.error.RateLimitError as e: |
| 180 | infer_result.token = f"[ERROR] OpenAI API request exceeded rate limit: {e}" |
| 181 | logger.error(f"OpenAI API request exceeded rate limit: {e}") |
| 182 | except requests.exceptions.RequestException as e: |
| 183 | logging.error(f"RequestException: {e}") |
| 184 | infer_result.token = f"[ERROR] No response from {infer_result.model_provider } after sixty seconds" |
| 185 | except ValueError as e: |
| 186 | if infer_result.model_provider == "huggingface-local": |
| 187 | infer_result.token = f"[ERROR] Error parsing response from local inference: {traceback.format_exc()}" |
| 188 | logger.error(f"Error parsing response from local inference: {traceback.format_exc()}") |
| 189 | else: |
| 190 | infer_result.token = f"[ERROR] Error parsing response from API: {e}" |
| 191 | logger.error(f"Error parsing response from API: {e}") |
| 192 | except Exception as e: |
| 193 | infer_result.token = f"[ERROR] {e}" |
no test coverage detected