arun47 commited on
Commit
5a0eced
·
verified ·
1 Parent(s): a9fbd1f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -23
app.py CHANGED
@@ -24,9 +24,6 @@ prompt = PromptTemplate(
24
  template=template
25
  )
26
 
27
- # Memory (Conversation history)
28
- memory = ConversationBufferMemory(memory_key="chat_history")
29
-
30
  # LLM with API Key
31
  llm = ChatOpenAI(
32
  temperature=0.5,
@@ -34,28 +31,33 @@ llm = ChatOpenAI(
34
  api_key=openai_api_key
35
  )
36
 
37
- # LLM Chain
38
- llm_chain = LLMChain(
39
- llm=llm,
40
- prompt=prompt,
41
- verbose=True,
42
- memory=memory
43
- )
 
 
 
 
44
 
45
- # Chat Function
46
- def get_text_response(user_message, history):
47
  response = llm_chain.predict(user_message=user_message)
48
- return response
49
-
50
- # Gradio Chat App
51
- demo = gr.ChatInterface(
52
- fn=get_text_response,
53
- examples=[
54
- "How are you doing?",
55
- "What are your interests?",
56
- "Which places do you like to visit?"
57
- ]
58
- )
 
 
 
59
 
60
  if __name__ == "__main__":
61
  demo.launch(share=True)
 
24
  template=template
25
  )
26
 
 
 
 
27
  # LLM with API Key
28
  llm = ChatOpenAI(
29
  temperature=0.5,
 
31
  api_key=openai_api_key
32
  )
33
 
34
+ # Function with per-user memory
35
+ def get_text_response(user_message, history, memory_state):
36
+ if memory_state is None:
37
+ memory_state = ConversationBufferMemory(memory_key="chat_history")
38
+
39
+ llm_chain = LLMChain(
40
+ llm=llm,
41
+ prompt=prompt,
42
+ verbose=True,
43
+ memory=memory_state
44
+ )
45
 
 
 
46
  response = llm_chain.predict(user_message=user_message)
47
+ return response, memory_state
48
+
49
+ # Gradio Chat App with State (per-user memory)
50
+ with gr.Blocks() as demo:
51
+ chatbot = gr.Chatbot()
52
+ msg = gr.Textbox(placeholder="Ask me anything...")
53
+ memory_state = gr.State() # 👈 each user gets their own memory
54
+
55
+ def respond(message, history, memory_state):
56
+ reply, memory_state = get_text_response(message, history, memory_state)
57
+ history = history + [[message, reply]]
58
+ return history, history, memory_state
59
+
60
+ msg.submit(respond, [msg, chatbot, memory_state], [chatbot, chatbot, memory_state])
61
 
62
  if __name__ == "__main__":
63
  demo.launch(share=True)