Download shortGPT/tracking/api_tracking.py from AZILS/s: direct link, hf CLI and curl.
- Browser
- Download file 1.92 kB
-
https://huggingface.co/spaces/AZILS/s/resolve/main/shortGPT/tracking/api_tracking.py
- Command line
-
hf download hf://spaces/AZILS/s/shortGPT/tracking/api_tracking.py
-
curl -L -o api_tracking.py https://huggingface.co/spaces/AZILS/s/resolve/main/shortGPT/tracking/api_tracking.py
1.92 kB
| from shortGPT.gpt import gpt_utils | |
| from shortGPT.database.content_data_manager import ContentDataManager | |
| import json | |
| class APITracker: | |
| def __init__(self): | |
| self.initiateAPITracking() | |
| def setDataManager(self, contentManager : ContentDataManager): | |
| if(not contentManager): | |
| raise Exception("contentManager is null") | |
| self.datastore = contentManager | |
| def openAIWrapper(self, gptFunc): | |
| def wrapper(*args, **kwargs): | |
| result = gptFunc(*args, **kwargs) | |
| prompt = kwargs.get('prompt') or kwargs.get('conversation') or args[0] | |
| prompt = json.dumps(prompt) | |
| if self.datastore and result: | |
| tokensUsed = gpt_utils.num_tokens_from_messages([prompt, result]) | |
| self.datastore.save('api_openai', tokensUsed, add=True) | |
| return result | |
| return wrapper | |
| def elevenWrapper(self, audioFunc): | |
| def wrapper(*args, **kwargs): | |
| result = audioFunc(*args, **kwargs) | |
| textInput = kwargs.get('text') or args[0] | |
| if self.datastore and result: | |
| self.datastore.save('api_eleven', len(textInput), add=True) | |
| return result | |
| return wrapper | |
| def wrap_turbo(self): | |
| func_name = "gpt3Turbo_completion" | |
| module = __import__("gpt_utils", fromlist=["gpt3Turbo_completion"]) | |
| func = getattr(module, func_name) | |
| wrapped_func = self.openAIWrapper(func) | |
| setattr(module, func_name, wrapped_func) | |
| def wrap_eleven(self): | |
| func_name = "generateVoice" | |
| module = __import__("audio_generation", fromlist=["generateVoice"]) | |
| func = getattr(module, func_name) | |
| wrapped_func = self.elevenWrapper(func) | |
| setattr(module, func_name, wrapped_func) | |
| def initiateAPITracking(self): | |
| self.wrap_turbo() | |
| self.wrap_eleven() | |