Spaces:
Running
Running
| from dotenv import load_dotenv | |
| import os | |
| import openai | |
| import pandas as pd | |
| load_dotenv() | |
| path = os.getenv("DATA") | |
| def add_new(model,name,query,prompt,answer): | |
| data = {"name" : name, "model" : model, "query" : query, "prompt": prompt, "answer" : answer} | |
| row = pd.DataFrame([data]) | |
| if not os.path.isfile(path): | |
| os.makedirs("data") | |
| with open(path, 'w') as file: | |
| file.write("name,model,query,prompt,answer\n") | |
| print("File Created") | |
| old_df = pd.read_csv(path) | |
| new_df = pd.concat([old_df, row], ignore_index=True) | |
| new_df.to_csv(path, index=False) | |
| print("Saved.") | |
| def get_data(): | |
| df = pd.read_csv(path) | |
| return df.to_string() | |
| def get_text(): | |
| with open(path, 'r', encoding='utf-8') as file: | |
| text = file.read() | |
| return text | |
| class ModelChain: | |
| def __init__(self): | |
| self.client = self.generate_client(os.getenv("OPENROUTER_API_KEY"), os.getenv("BASE_URL")) | |
| self.deepseek_messages = [] | |
| self.gemini_messages = [] | |
| def generate_client(self,api_key, url): | |
| return openai.OpenAI( | |
| api_key = api_key, | |
| base_url = url, | |
| ) | |
| def generate_response(self,model,name, query,prompt): | |
| messages = [{"role":"system","content": prompt}, | |
| {"role":"user","content":query}] | |
| try: | |
| result = self.client.chat.completions.create( | |
| model = model, | |
| messages = messages, | |
| ) | |
| answer = result.choices[0].message.content | |
| add_new(model,name,query,prompt,answer) | |
| return answer | |
| except Exception as e: | |
| print(f"Response Error : {e}") | |
| if e == "'NoneType' object is not subscriptable": | |
| return f"This AI Model might be Busy at the moment, try another AI Model" | |
| else: | |
| return f"Response Error : {e}" | |
| def main(): | |
| chain= Modelschain() | |
| if __name__ == "__main__": | |
| main() |