README / main.py
Raiff1982's picture
Upload 43 files
7293b6f verified
raw
history blame
2.29 kB
import os
import logging
from aiohttp import web
from botbuilder.core import (
BotFrameworkAdapterSettings,
ConversationState,
MemoryStorage,
UserState,
)
from botbuilder.integration.aiohttp import BotFrameworkHttpAdapter
from botbuilder.schema import Activity
from dotenv import load_dotenv
from utils import show_privacy_consent
from universal_reasoning import UniversalReasoning, load_json_config
from mybot import MyBot # Import updated MyBot class
from main_dialog import MainDialog
# Load environment variables from .env file
load_dotenv()
# Configure logging
logging.basicConfig(
level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s"
)
# Show privacy consent dialog and check user response
if not show_privacy_consent():
logging.info("User declined data collection and privacy policy. Exiting application.")
exit()
# Load configuration
config = load_json_config("config.json")
config["azure_openai_api_key"] = os.getenv("AZURE_OPENAI_API_KEY")
config["azure_openai_endpoint"] = os.getenv("AZURE_OPENAI_ENDPOINT")
# Initialize UniversalReasoning
universal_reasoning = UniversalReasoning(config)
# Create adapter
settings = BotFrameworkAdapterSettings(
app_id=os.getenv("MICROSOFT_APP_ID"),
app_password=os.getenv("MICROSOFT_APP_PASSWORD"),
)
adapter = BotFrameworkHttpAdapter(settings)
# Create MemoryStorage, ConversationState, and UserState
memory_storage = MemoryStorage()
conversation_state = ConversationState(memory_storage)
user_state = UserState(memory_storage)
# Create the main dialog
main_dialog = MainDialog("MainDialog")
# Create the bot and pass the universal_reasoning instance
bot = MyBot(conversation_state, user_state, main_dialog, universal_reasoning)
# Listen for incoming requests on /api/messages
async def messages(req):
body = await req.json()
activity = Activity().deserialize(body)
auth_header = req.headers.get("Authorization", "")
response = await adapter.process_activity(activity, auth_header, bot.on_turn)
return web.Response(status=response.status)
app = web.Application()
app.router.add_post("/api/messages", messages)
if __name__ == "__main__":
web.run_app(app, host="localhost", port=3978)