|
from langchain_core.prompts import ChatPromptTemplate, PromptTemplate |
|
from langchain_groq import ChatGroq |
|
from langchain_huggingface import ChatHuggingFace |
|
from langchain_huggingface import HuggingFaceEndpoint |
|
from dotenv import load_dotenv |
|
from langchain.schema.output_parser import StrOutputParser |
|
from langchain_huggingface import ChatHuggingFace |
|
from langchain_google_genai import ChatGoogleGenerativeAI |
|
import os |
|
from huggingface_hub import login |
|
|
|
load_dotenv() |
|
|
|
login(token=os.environ["HUGGING_FACE_API_KEY"]) |
|
os.environ['CURL_CA_BUNDLE'] = '' |
|
|
|
load_dotenv() |
|
|
|
class Bot(): |
|
def __init__(self): |
|
self.groq_models = ['gemma-7b-it', 'llama3-70b-8192',\ |
|
'llama3-8b-8192', 'mixtral-8x7b-32768'] |
|
self.hf_models = ["01-ai/Yi-1.5-34B-Chat", "google/gemma-1.1-2b-it",\ |
|
"google/gemma-1.1-7b-it"] |
|
self.google_models = ["gemini-1.0-pro", "gemini-1.5-flash",\ |
|
"gemini-1.5-pro"] |
|
self.models = ["gemini-1.0-pro", "gemini-1.5-flash", "gemini-1.5-pro", "01-ai/Yi-1.5-34B-Chat", "google/gemma-1.1-2b-it",\ |
|
"google/gemma-1.1-7b-it", 'gemma-7b-it', 'llama3-70b-8192', 'llama3-8b-8192', 'mixtral-8x7b-32768'] |
|
|
|
def call_groq(self, model, temp = 0.7, given_prompt = "Hi"): |
|
try: |
|
llm = ChatGroq( |
|
temperature=temp, |
|
model= model |
|
) |
|
|
|
system = "You are a helpful assistant." |
|
human = "{text}" |
|
prompt = ChatPromptTemplate.from_messages([("system", system), ("human", human)]) |
|
|
|
chain = prompt | llm | StrOutputParser() |
|
return chain.invoke({"text": given_prompt}) |
|
|
|
except Exception as e: |
|
return f"Error: {str(e)}" |
|
|
|
def call_hf(self,model, temp = 0.7, given_prompt = "Hi"): |
|
try: |
|
llm = HuggingFaceEndpoint( |
|
repo_id=model, |
|
temperature=temp |
|
) |
|
|
|
chat = ChatHuggingFace(llm=llm, verbose=True) |
|
|
|
template = """ |
|
You are a helpful assistant |
|
|
|
User: {query} |
|
|
|
Answer: |
|
""" |
|
|
|
prompt = PromptTemplate( |
|
template=template, |
|
input_variables=["query"] |
|
) |
|
|
|
chain =prompt | chat | StrOutputParser() |
|
|
|
return chain.invoke({"query": given_prompt}) |
|
|
|
except Exception as e: |
|
return f"Error: {str(e)}" |
|
|
|
def call_google(self,model, temp=0.7, given_prompt = "Hi"): |
|
try: |
|
model = ChatGoogleGenerativeAI(model = model, temprature = temp) |
|
system = "You are a helpful assistant." |
|
human = "{text}" |
|
prompt = ChatPromptTemplate.from_messages([("human", human)]) |
|
chain = prompt | model | StrOutputParser() |
|
return chain.invoke({"text": given_prompt}) |
|
except Exception as e: |
|
return f"Error: {str(e)}" |
|
|
|
def response(self, model, prompt="Hi", temprature = 0.7): |
|
if model in self.groq_models: |
|
res_show = self.call_groq(temp = temprature, given_prompt = prompt, model= model) |
|
elif model in self.hf_models: |
|
res_show = self.call_hf(given_prompt = prompt, temp = temprature, model = model) |
|
elif model in self.google_models: |
|
res_show = self.call_google(given_prompt = prompt, temp = temprature, model = model) |
|
else: |
|
return "Sorry! App not working properly" |
|
return res_show |
|
|
|
|
|
|
|
|
|
|
|
|