Spaces:
Runtime error
Runtime error
| import time | |
| import requests | |
| import logging | |
| import argparse | |
| class LLMFlaskClient: | |
| def __init__(self, ip: str, port: int, max_retry: int = 3): | |
| self.ip = ip | |
| self.port = port | |
| self.url_prefix_format = 'http://{}:{}/' | |
| self.url = self.url_prefix_format.format(self.ip, self.port) | |
| self.max_retry = max_retry | |
| self.logger = logging.getLogger() | |
| self.logger.addHandler(logging.StreamHandler()) | |
| self.logger.handlers[0].setFormatter(logging.Formatter("%(message)s")) | |
| def _request(self, name: str, data: dict): | |
| for _ in range(self.max_retry): | |
| try: | |
| self.logger.info(f'{name}\ndata: {data}') | |
| response = requests.post(self.url + name, json=data).json() | |
| except Exception as e: | |
| self.logger.warning('error: ', repr(e)) | |
| time.sleep(1) | |
| continue | |
| if response['code'] == 0: | |
| return response['output'] | |
| else: | |
| raise Exception(response['error_msg']) | |
| raise Exception("Web service failed. Please retry or contact with manager") | |
| def run(self, message: str) -> str: | |
| try: | |
| return self._request('ask_llm_for_answer', {'user_text': message}) | |
| except Exception as e: | |
| return f"Error: {repr(e)}" | |
| if __name__ == "__main__": | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument('--ip', required=True) | |
| parser.add_argument('-p', '--port', required=True) | |
| parser.add_argument('--debug', action='store_true') | |
| args = parser.parse_args() | |
| if args.debug: | |
| logging.getLogger().setLevel(logging.INFO) | |
| else: | |
| logging.getLogger().setLevel(logging.WARNING) | |
| client = LLMFlaskClient(args.ip, args.port) | |
| print(client.run('Please concatenate string "1+" and "1=3". Only give me the result without "".')) | |