ConradLinus's picture
Upload folder using huggingface_hub
63c0c36 verified
"""This module contains functions to interact with the OpenRouter API.
It load dotenv, OpenAI and other necessary packages to interact
with the OpenRouter API.
Also stores the chat history in a list."""
from dotenv import load_dotenv
from openai import OpenAI
from IPython.display import Markdown, display
import os
# override any existing environment variables
load_dotenv(override=True)
# load
openrouter_api_key = os.getenv('OPENROUTER_API_KEY')
if openrouter_api_key:
print(f"OpenAI API Key exists and begins {openrouter_api_key[:8]}")
else:
print("OpenAI API Key not set - please head to the troubleshooting guide in the setup folder")
chatHistory = []
def chatWithOpenRouter(model:str, prompt:str)-> str:
""" This function takes a model and a prompt and shows the response
in markdown format. It uses the OpenAI class from the openai package"""
# here instantiate the OpenAI class but with the OpenRouter
# API URL
llmRequest = OpenAI(
api_key=openrouter_api_key,
base_url="https://openrouter.ai/api/v1"
)
# add the prompt to the chat history
chatHistory.append({"role": "user", "content": prompt})
# make the request to the OpenRouter API
response = llmRequest.chat.completions.create(
model=model,
messages=chatHistory
)
# get the output from the response
assistantResponse = response.choices[0].message.content
# show the answer
display(Markdown(f"**Assistant:** {assistantResponse}"))
# add the assistant response to the chat history
chatHistory.append({"role": "assistant", "content": assistantResponse})
def getOpenrouterResponse(model:str, prompt:str)-> str:
"""
This function takes a model and a prompt and returns the response
from the OpenRouter API, using the OpenAI class from the openai package.
"""
llmRequest = OpenAI(
api_key=openrouter_api_key,
base_url="https://openrouter.ai/api/v1"
)
# add the prompt to the chat history
chatHistory.append({"role": "user", "content": prompt})
# make the request to the OpenRouter API
response = llmRequest.chat.completions.create(
model=model,
messages=chatHistory
)
# get the output from the response
assistantResponse = response.choices[0].message.content
# add the assistant response to the chat history
chatHistory.append({"role": "assistant", "content": assistantResponse})
# return the assistant response
return assistantResponse
#clear chat history
def clearChatHistory():
""" This function clears the chat history. It can't be undone!"""
chatHistory.clear()