BhaskarChatBot / app.py
Bhaskar2611's picture
Update app.py
4f02b1c verified
# import os
# import gradio as gr
# from langchain.chat_models import ChatOpenAI
# from langchain.prompts import PromptTemplate
# from langchain.chains import LLMChain
# from langchain.memory import ConversationBufferMemory
# # Set OpenAI API Key
# OPENAI_API_KEY = os.getenv('OPENAI_API_KEY')
# # Define the template for the chatbot's response
# template = """You are a helpful assistant to answer all user queries.
# {chat_history}
# User: {user_message}
# Chatbot:"""
# # Define the prompt template
# prompt = PromptTemplate(
# input_variables=["chat_history", "user_message"],
# template=template
# )
# # Initialize conversation memory
# memory = ConversationBufferMemory(memory_key="chat_history")
# # Define the LLM chain with the ChatOpenAI model and conversation memory
# llm_chain = LLMChain(
# llm=ChatOpenAI(temperature=0.5, model="gpt-3.5-turbo"), # Use 'model' instead of 'model_name'
# prompt=prompt,
# verbose=True,
# memory=memory,
# )
# # Function to get chatbot response
# def get_text_response(user_message, history):
# response = llm_chain.predict(user_message=user_message)
# return response
# # Create a Gradio chat interface
# demo = gr.Interface(fn=get_text_response, inputs="text", outputs="text")
# if __name__ == "__main__":
# demo.launch()
# import os
# import gradio as gr
# from langchain.chat_models import ChatOpenAI
# from langchain.schema import AIMessage, HumanMessage
# # Set OpenAI API Key
# os.environ["OPENAI_API_KEY"] = "sk-3_mJiR5z9Q3XN-D33cgrAIYGffmMvHfu5Je1U0CW1ZT3BlbkFJA2vfSvDqZAVUyHo2JIcU91XPiAq424OSS8ci29tWMA" # Replace with your key
# # Initialize the ChatOpenAI model
# llm = ChatOpenAI(temperature=1.0, model="gpt-3.5-turbo-0613")
# # Function to predict response
# def get_text_response(message, history=None):
# # Ensure history is a list
# if history is None:
# history = []
# # Convert the Gradio history format to LangChain message format
# history_langchain_format = []
# for human, ai in history:
# history_langchain_format.append(HumanMessage(content=human))
# history_langchain_format.append(AIMessage(content=ai))
# # Add the new user message to the history
# history_langchain_format.append(HumanMessage(content=message))
# # Get the model's response
# gpt_response = llm(history_langchain_format)
# # Append AI response to history
# history.append((message, gpt_response.content))
# # Return the response and updated history
# return gpt_response.content, history
# # Create a Gradio chat interface
# demo = gr.ChatInterface(
# fn=get_text_response,
# inputs=["text", "state"],
# outputs=["text", "state"]
# )
# if __name__ == "__main__":
# demo.launch()
# import os # Import the os module
# import time
# import gradio as gr
# from langchain_community.chat_models import ChatOpenAI # Updated import based on deprecation warning
# from langchain.schema import AIMessage, HumanMessage
# import openai
# # Set your OpenAI API key
# os.environ["OPENAI_API_KEY"] = "sk-3_mJiR5z9Q3XN-D33cgrAIYGffmMvHfu5Je1U0CW1ZT3BlbkFJA2vfSvDqZAVUyHo2JIcU91XPiAq424OSS8ci29tWMA" # Replace with your OpenAI key
# # Initialize ChatOpenAI
# llm = ChatOpenAI(temperature=1.0, model='gpt-3.5-turbo-0613')
# def predict(message, history):
# # Reformat history for LangChain
# history_langchain_format = []
# for human, ai in history:
# history_langchain_format.append(HumanMessage(content=human))
# history_langchain_format.append(AIMessage(content=ai))
# # Add latest human message
# history_langchain_format.append(HumanMessage(content=message))
# # Get response from the model
# gpt_response = llm(history_langchain_format)
# # Return response
# return gpt_response.content
# # Using ChatInterface to create a chat-style UI
# demo = gr.ChatInterface(fn=predict, type="messages")
# if __name__ == "__main__":
# demo.launch()
import gradio as gr
from huggingface_hub import InferenceClient
"""
For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference
"""
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
def respond(
message,
history: list[tuple[str, str]],
system_message,
max_tokens,
temperature,
top_p,
):
messages = [{"role": "system", "content": system_message}]
for val in history:
if val[0]:
messages.append({"role": "user", "content": val[0]})
if val[1]:
messages.append({"role": "assistant", "content": val[1]})
messages.append({"role": "user", "content": message})
response = ""
for message in client.chat_completion(
messages,
max_tokens=max_tokens,
stream=True,
temperature=temperature,
top_p=top_p,
):
token = message.choices[0].delta.content
response += token
yield response
"""
For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface
"""
demo = gr.ChatInterface(
respond,
additional_inputs=[
gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
gr.Slider(
minimum=0.1,
maximum=1.0,
value=0.95,
step=0.05,
label="Top-p (nucleus sampling)",
),
],
)
if __name__ == "__main__":
demo.launch()