Spaces:
Sleeping
Sleeping
File size: 3,833 Bytes
7c53e62 eab216c c9f16fe eab216c d75090c eab216c d75090c eab216c d75090c eab216c d75090c eab216c d75090c eab216c c9f16fe d75090c c9f16fe eab216c c9f16fe d75090c eab216c c9f16fe eab216c c9f16fe eab216c c9f16fe eab216c c9f16fe eab216c d75090c eab216c d75090c c9f16fe d75090c eab216c d75090c eab216c c9f16fe d75090c c9f16fe d75090c c9f16fe d75090c eab216c |
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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate, PromptTemplate
from langchain_groq import ChatGroq
from langchain_openai import ChatOpenAI
from langchain_community.chat_models import ChatAnthropic
from langchain_google_genai import ChatGoogleGenerativeAI
from dotenv import load_dotenv
from huggingface_hub import login
import os
# Load environment variables and authenticate
load_dotenv()
login(token=os.environ.get("HUGGING_FACE_API_KEY", ""))
os.environ['CURL_CA_BUNDLE'] = ''
class Bot:
def __init__(self):
# Verified, stable models
self.openai_models = ["gpt-4o", "gpt-4-turbo", "gpt-3.5-turbo"]
self.anthropic_models = ["claude-3-opus-20240229", "claude-3-sonnet-20240229"]
self.google_models = ["gemini-pro"]
self.groq_models = ["llama3-8b-8192", "llama3-70b-8192"] # Keep only working ones
# Final model list
self.models = self.openai_models + self.anthropic_models + self.google_models + self.groq_models
def call_openai(self, model, temp=0.7, given_prompt="Hi"):
try:
llm = ChatOpenAI(model=model, temperature=temp)
prompt = ChatPromptTemplate.from_messages([
("system", "You are a helpful assistant."),
("human", "{text}")
])
chain = prompt | llm | StrOutputParser()
return chain.invoke({"text": given_prompt})
except Exception as e:
return f"⚠️ [OpenAI:{model}] {str(e)}"
def call_anthropic(self, model, temp=0.7, given_prompt="Hi"):
try:
llm = ChatAnthropic(model=model, temperature=temp)
prompt = ChatPromptTemplate.from_messages([
("system", "You are a helpful assistant."),
("human", "{text}")
])
chain = prompt | llm | StrOutputParser()
return chain.invoke({"text": given_prompt})
except Exception as e:
return f"⚠️ [Anthropic:{model}] {str(e)}"
def call_google(self, model, temp=0.7, given_prompt="Hi"):
try:
gm = ChatGoogleGenerativeAI(model=model, temperature=temp)
prompt = ChatPromptTemplate.from_messages([
("system", "You are a helpful assistant."),
("human", "{text}")
])
chain = prompt | gm | StrOutputParser()
return chain.invoke({"text": given_prompt})
except Exception as e:
return f"⚠️ [Google:{model}] {str(e)}"
def call_groq(self, model, temp=0.7, given_prompt="Hi"):
try:
llm = ChatGroq(model=model, temperature=temp)
prompt = ChatPromptTemplate.from_messages([
("system", "You are a helpful assistant."),
("human", "{text}")
])
chain = prompt | llm | StrOutputParser()
return chain.invoke({"text": given_prompt})
except Exception as e:
return f"⚠️ [Groq:{model}] {str(e)}"
def response(self, model, prompt="Hi", temperature=0.7):
try:
if model in self.openai_models:
return self.call_openai(model, temp=temperature, given_prompt=prompt)
elif model in self.anthropic_models:
return self.call_anthropic(model, temp=temperature, given_prompt=prompt)
elif model in self.google_models:
return self.call_google(model, temp=temperature, given_prompt=prompt)
elif model in self.groq_models:
return self.call_groq(model, temp=temperature, given_prompt=prompt)
else:
return f"❌ Unsupported model: {model}"
except Exception as e:
return f"⚠️ Skipping `{model}` due to error: {str(e)}"
|