suptest / test.py
John Landry
do it
a120bed
raw
history blame contribute delete
No virus
1.91 kB
import json
from kb import getkb, get_response
from dotenv import load_dotenv
from whatsapp_client import WhatsAppWrapper
load_dotenv()
data = """{
"object": "whatsapp_business_account",
"entry": [
{
"id": "270451259495375",
"changes": [
{
"value": {
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "15556024077",
"phone_number_id": "297527496785471"
},
"contacts": [
{
"profile": {
"name": "Eric Landry"
},
"wa_id": "15127404620"
}
],
"messages": [
{
"from": "15127404620",
"id": "wamid.HBgLMTUxMjc0MDQ2MjAVAgASGBQzQTEyQTM0OURGQUI4QzZDNTg2MAA=",
"timestamp": "1716933996",
"text": {
"body": "how do i get tested for prostate cancer?"
},
"type": "text"
}
]
},
"field": "messages"
}
]
}
]
}"""
data = json.loads(data)
value = data['entry'][0]['changes'][0]['value']
def main():
vectorstore = getkb()
if 'messages' in value and 'from' in value['messages'][0] and 'text' in value['messages'][0]:
message = value['messages'][0]
name = value['contacts'][0]['profile']['name']
phone_num = message['from']
mesg_body = message['text']['body']
context = '\n'.join([doc[0].page_content for doc in vectorstore.similarity_search_with_score(mesg_body, k=6)])
response = get_response(mesg_body, context, name)
print(f"RESPONSE: {response}")
client = WhatsAppWrapper()
client.send_text_message("hello, right back at ya ..." + response, phone_num)
if __name__ == "__main__":
main()