File size: 1,668 Bytes
fe4e296
 
c79918f
 
fe4e296
 
a82c031
 
 
 
fe4e296
a82c031
6c8451c
fe4e296
 
a82c031
fe4e296
 
a82c031
 
fe4e296
 
a82c031
fe4e296
 
a82c031
 
 
 
 
fe4e296
a82c031
fe4e296
 
c97445a
a82c031
 
 
fe4e296
 
a82c031
fe4e296
 
 
a82c031
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
import os
import gradio as gr
from langchain.chat_models import ChatOpenAI
from langchain import LLMChain, PromptTemplate
from langchain.memory import ConversationBufferMemory

# Retrieve and validate OpenAI API key
OPENAI_API_KEY = os.getenv('OPENAI_API_KEY')
if not OPENAI_API_KEY:
    raise ValueError("OPENAI_API_KEY environment variable is not set.")

# Define the prompt template
template = """Meet Riya, your youthful and witty personal assistant! At 21 years old, she's full of energy and always eager to help. Riya's goal is to assist you with any questions or problems you might have. Her enthusiasm shines through in every response, making interactions with her enjoyable and engaging.
{chat_history}
User: {user_message}
Chatbot: """

prompt = PromptTemplate(
    input_variables=["chat_history", "user_message"], 
    template=template
)

# Initialize memory and LLM chain
memory = ConversationBufferMemory(memory_key="chat_history")
llm_chain = LLMChain(
    llm=ChatOpenAI(
        openai_api_key=OPENAI_API_KEY,
        temperature=0.5,
        model_name="gpt-3.5-turbo"
    ),
    prompt=prompt,
    verbose=False,  # Set to False for cleaner output
    memory=memory,
)

# Define the response function for Gradio
def get_text_response(user_message, history):
    response = llm_chain.predict(user_message=user_message)
    return response

# Create and launch Gradio interface
demo = gr.ChatInterface(get_text_response)

if __name__ == "__main__":
    demo.launch()  # Add server_name="0.0.0.0" or share=True for specific use cases #To create a public link, set `share=True` in `launch()`. To enable errors and logs, set `debug=True` in `launch()`.