Spaces:
Sleeping
Sleeping
Update main.py
Browse files
main.py
CHANGED
|
@@ -35,6 +35,10 @@ async def update_user_guide_data():
|
|
| 35 |
user_guide_sync.update_user_guide()
|
| 36 |
return "guide updated"
|
| 37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
@app.post("/whatsapp")
|
| 39 |
async def reply_whatsapp(request: Request):
|
| 40 |
|
|
@@ -47,36 +51,55 @@ async def reply_whatsapp(request: Request):
|
|
| 47 |
response = MessagingResponse()
|
| 48 |
#msg.media(GOOD_BOY_URL)
|
| 49 |
try:
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
index
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 56 |
|
| 57 |
-
|
| 58 |
-
|
| 59 |
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 65 |
|
| 66 |
-
default = """Dear\n\nIf you have a specific question or need assistance, please feel free to submit a ticket, and our support team will be happy to help you \n\nSubmit a Ticket: \n\tEmail: support@storemate.lk\nThank You """
|
| 67 |
-
|
| 68 |
print(str(gpt_response).lower())
|
| 69 |
-
if "
|
| 70 |
print("help desk option")
|
| 71 |
|
| 72 |
-
|
| 73 |
prompt = f"""
|
| 74 |
system:
|
| 75 |
you are parallax technologies chatbot design for answer the user question like a real human.
|
| 76 |
contact details Email : support@storemate.lk Youtube : https://www.youtube.com/channel/UCFkX9Fa-Qe6Qi4V5f0RcfSA Facebook : https://www.facebook.com/storemateinventory web link : https://storemate.lk
|
| 77 |
|
| 78 |
only give single answer and don't give answer for general answers(this is CRM system for only pos system clients)
|
| 79 |
-
note : don't give
|
| 80 |
user:{user_query}
|
| 81 |
"""
|
| 82 |
messages = [
|
|
|
|
| 35 |
user_guide_sync.update_user_guide()
|
| 36 |
return "guide updated"
|
| 37 |
|
| 38 |
+
|
| 39 |
+
|
| 40 |
+
index = None
|
| 41 |
+
|
| 42 |
@app.post("/whatsapp")
|
| 43 |
async def reply_whatsapp(request: Request):
|
| 44 |
|
|
|
|
| 51 |
response = MessagingResponse()
|
| 52 |
#msg.media(GOOD_BOY_URL)
|
| 53 |
try:
|
| 54 |
+
openai.api_key = os.environ["OPENAI_API_KEY"]
|
| 55 |
+
global index # Use the global index variable
|
| 56 |
+
if index is None: # Check if the index is already loaded
|
| 57 |
+
from llama_index import StorageContext, load_index_from_storage # Import necessary modules
|
| 58 |
+
storage_context = StorageContext.from_defaults(persist_dir="llama_index")
|
| 59 |
+
index = load_index_from_storage(storage_context=storage_context)
|
| 60 |
+
print("Index loaded")
|
| 61 |
+
else:
|
| 62 |
+
print("Index already loaded")
|
| 63 |
+
# Set up a retriever to fetch similar documents directly without full query processing
|
| 64 |
+
retriever = index.as_retriever()
|
| 65 |
+
# Retrieve the top similar documents based on the user query
|
| 66 |
+
similar_docs = retriever.retrieve(user_query) # Adjust `top_k` as needed
|
| 67 |
+
# Prepare the context for LLM by concatenating the content of similar documents
|
| 68 |
+
context = "\n\n".join([doc.node.text for doc in similar_docs])
|
| 69 |
|
| 70 |
+
prompt = f"""
|
| 71 |
+
context : {context}
|
| 72 |
|
| 73 |
+
user query : {user_query}
|
| 74 |
+
|
| 75 |
+
Instructions:
|
| 76 |
+
- First, understand the user question carefully.
|
| 77 |
+
- If you find the correct answer from the provided data, respond with detailed steps (1, 2, ...) and always include a more details link.
|
| 78 |
+
- If the correct answer is not found in the provided data or proide the correct solution to user using data then output is only this : "contact our help desk". dont add extra anything
|
| 79 |
+
"""
|
| 80 |
+
messages = [
|
| 81 |
+
{"role": "user", "content": prompt }
|
| 82 |
+
]
|
| 83 |
+
|
| 84 |
+
# Make the API call
|
| 85 |
+
response = openai.chat.completions.create(
|
| 86 |
+
model="gpt-4o-mini",
|
| 87 |
+
messages=messages
|
| 88 |
+
)
|
| 89 |
+
gpt_response = response.choices[0].message.content
|
| 90 |
|
|
|
|
|
|
|
| 91 |
print(str(gpt_response).lower())
|
| 92 |
+
if "contact our help desk" in str(gpt_response).lower() or "our help desk" in str(gpt_response).lower():
|
| 93 |
print("help desk option")
|
| 94 |
|
| 95 |
+
|
| 96 |
prompt = f"""
|
| 97 |
system:
|
| 98 |
you are parallax technologies chatbot design for answer the user question like a real human.
|
| 99 |
contact details Email : support@storemate.lk Youtube : https://www.youtube.com/channel/UCFkX9Fa-Qe6Qi4V5f0RcfSA Facebook : https://www.facebook.com/storemateinventory web link : https://storemate.lk
|
| 100 |
|
| 101 |
only give single answer and don't give answer for general answers(this is CRM system for only pos system clients)
|
| 102 |
+
note : don't give any steps for solve the issues but give steps for sytem slow and performance related questions
|
| 103 |
user:{user_query}
|
| 104 |
"""
|
| 105 |
messages = [
|