Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -79,26 +79,35 @@ def generate_response(
|
|
79 |
|
80 |
context = search_relevant_text(message) # Get relevant content from PDF
|
81 |
|
82 |
-
|
|
|
|
|
|
|
|
|
|
|
83 |
for user_msg, bot_msg in history:
|
84 |
-
if user_msg:
|
85 |
-
messages
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
|
|
|
|
|
|
|
|
102 |
|
103 |
@app.route('/')
|
104 |
def index():
|
|
|
79 |
|
80 |
context = search_relevant_text(message) # Get relevant content from PDF
|
81 |
|
82 |
+
# Start with the system message in the first user message
|
83 |
+
messages = []
|
84 |
+
first_msg = f"{system_message}\n\nContext: {context}\nQuestion: {message}"
|
85 |
+
messages.append({"role": "user", "content": first_msg})
|
86 |
+
|
87 |
+
# Add conversation history ensuring alternating pattern (user, assistant, user, assistant...)
|
88 |
for user_msg, bot_msg in history:
|
89 |
+
if user_msg.strip(): # Check if user message is not empty
|
90 |
+
if messages and messages[-1]['content'] != user_msg: # Check for duplicates
|
91 |
+
messages.append({"role": "user", "content": user_msg})
|
92 |
+
if bot_msg.strip(): # Check if assistant message is not empty
|
93 |
+
if messages and messages[-1]['content'] != bot_msg: # Check for duplicates
|
94 |
+
messages.append({"role": "assistant", "content": bot_msg})
|
95 |
+
|
96 |
+
try:
|
97 |
+
response = ""
|
98 |
+
for chunk in client.chat_completion(
|
99 |
+
messages,
|
100 |
+
max_tokens=max_tokens,
|
101 |
+
stream=True,
|
102 |
+
temperature=temperature,
|
103 |
+
top_p=top_p,
|
104 |
+
):
|
105 |
+
token = chunk.choices[0].delta.content or ""
|
106 |
+
response += token
|
107 |
+
yield response
|
108 |
+
except Exception as e:
|
109 |
+
print(f"Error generating response: {str(e)}")
|
110 |
+
yield "I apologize, but I encountered an error while generating the response."
|
111 |
|
112 |
@app.route('/')
|
113 |
def index():
|