File size: 1,773 Bytes
784dbce
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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()