Spaces:
No application file
No application file
import os | |
import requests | |
from dotenv import load_dotenv | |
from flask import Flask, request | |
from embedchain import App | |
app = Flask(__name__) | |
load_dotenv() | |
bot_token = os.environ["TELEGRAM_BOT_TOKEN"] | |
chat_bot = App() | |
def telegram_webhook(): | |
data = request.json | |
message = data["message"] | |
chat_id = message["chat"]["id"] | |
text = message["text"] | |
if text.startswith("/start"): | |
response_text = ( | |
"Welcome to Embedchain Bot! Try the following commands to use the bot:\n" | |
"For adding data sources:\n /add <data_type> <url_or_text>\n" | |
"For asking queries:\n /query <question>" | |
) | |
elif text.startswith("/add"): | |
_, data_type, url_or_text = text.split(maxsplit=2) | |
response_text = add_to_chat_bot(data_type, url_or_text) | |
elif text.startswith("/query"): | |
_, question = text.split(maxsplit=1) | |
response_text = query_chat_bot(question) | |
else: | |
response_text = "Invalid command. Please refer to the documentation for correct syntax." | |
send_message(chat_id, response_text) | |
return "OK" | |
def add_to_chat_bot(data_type, url_or_text): | |
try: | |
chat_bot.add(data_type, url_or_text) | |
response_text = f"Added {data_type} : {url_or_text}" | |
except Exception as e: | |
response_text = f"Failed to add {data_type} : {url_or_text}" | |
print("Error occurred during 'add' command:", e) | |
return response_text | |
def query_chat_bot(question): | |
try: | |
response = chat_bot.chat(question) | |
response_text = response | |
except Exception as e: | |
response_text = "An error occurred. Please try again!" | |
print("Error occurred during 'query' command:", e) | |
return response_text | |
def send_message(chat_id, text): | |
url = f"https://api.telegram.org/bot{bot_token}/sendMessage" | |
data = {"chat_id": chat_id, "text": text} | |
requests.post(url, json=data) | |
if __name__ == "__main__": | |
app.run(host="0.0.0.0", port=8000, debug=False) | |