Spaces:
Sleeping
Sleeping
| # %% | |
| from pymongo.mongo_client import MongoClient | |
| from pymongo.server_api import ServerApi | |
| import os | |
| from dotenv import load_dotenv | |
| from datetime import datetime, timezone | |
| from app.config import client, chat_logs | |
| # %% | |
| def log_chat(session_id: str, name: str, email: str, query: str, answer: str, chatbot_id: str, company_id: str, latency_ms: float | None=None, metadata: dict=None): | |
| """ | |
| Logs a chat interaction to the MongoDB 'ChatLogs' collection. | |
| """ | |
| print("test") | |
| data = { | |
| "timestamp": datetime.now(timezone.utc), | |
| "starred": False, | |
| "company_id": company_id, | |
| "session_id": session_id, | |
| "chatbot_id": chatbot_id, | |
| "name": name, | |
| "email": email, | |
| "query": query, | |
| "answer": answer, | |
| "metadata": metadata or {}, | |
| } | |
| if latency_ms is not None: | |
| data["latency_ms"] = latency_ms | |
| try: | |
| print("Logging chat:", data) | |
| result = chat_logs.insert_one(data) | |
| except Exception as e: | |
| print("Failed to log chat interaction:", e) | |
| # %% | |