[31988f42] Lead-Engine: Produktivsetzung und Anfrage per Teams
Implementiert: * **End-to-End Test-Button pro Lead:** Ein neuer Button "🧪 Test-Versand (an floke.com@gmail.com)" wurde in der Lead-Detailansicht hinzugefügt, um spezifische Leads sicher zu testen. * **Verbesserte E-Mail-Generierung:** * Der LLM-Prompt wurde optimiert, um redundante Termin-Vorschläge und Betreffzeilen im generierten E-Mail-Text zu vermeiden. * Der E-Mail-Body wurde umstrukturiert für eine klarere und leserlichere Integration des LLM-generierten Textes und der dynamischen Terminvorschläge. * **HTML-Signatur mit Inline-Bildern:** * Ein Skript zum Extrahieren von HTML-Signaturen und eingebetteten Bildern aus -Dateien wurde erstellt und ausgeführt. * Die -Funktion wurde überarbeitet, um die neue HTML-Signatur und alle zugehörigen Bilder dynamisch als Inline-Anhänge zu versenden. * **Bugfixes und verbesserte Diagnosefähigkeit:** * Der für wurde durch Verschieben der Funktion in den globalen Bereich behoben. * Die im Kalender-Abruf wurde durch die explizite Übergabe der Zeitzoneninformation an die Graph API korrigiert. * Fehlende Uhrzeit in Teams-Nachrichten behoben. * Umfassendes Logging wurde in kritischen Funktionen (, , ) implementiert, um die Diagnosefähigkeit bei zukünftigen Problemen zu verbessern.
This commit is contained in:
@@ -50,6 +50,21 @@ st.title("🚀 Lead Engine: TradingTwins")
|
||||
# Sidebar Actions
|
||||
st.sidebar.header("Actions")
|
||||
|
||||
if st.sidebar.button("🚀 Trigger Test-Lead (Teams)"):
|
||||
try:
|
||||
import requests
|
||||
# The feedback server runs on port 8004 inside the same container
|
||||
response = requests.get("http://localhost:8004/test_lead")
|
||||
if response.status_code == 202:
|
||||
st.sidebar.success("Test lead triggered successfully!")
|
||||
st.toast("Check Teams for the notification.")
|
||||
else:
|
||||
st.sidebar.error(f"Error: {response.status_code} - {response.text}")
|
||||
except Exception as e:
|
||||
st.sidebar.error(f"Failed to trigger test: {e}")
|
||||
|
||||
st.sidebar.divider()
|
||||
|
||||
if st.sidebar.button("1. Ingest Emails (Mock)"):
|
||||
from ingest import ingest_mock_leads
|
||||
init_db()
|
||||
@@ -246,6 +261,24 @@ if not df.empty:
|
||||
# Always display the draft from the database if it exists
|
||||
if row.get('response_draft'):
|
||||
st.text_area("Email Entwurf", value=row['response_draft'], height=400)
|
||||
|
||||
if st.button("🧪 Test-Versand (an floke.com@gmail.com)", key=f"test_send_{row['id']}"):
|
||||
try:
|
||||
import requests
|
||||
payload = {
|
||||
"company_name": row['company_name'],
|
||||
"contact_name": row['contact_name'],
|
||||
"opener": row['response_draft']
|
||||
}
|
||||
response = requests.post("http://localhost:8004/test_specific_lead", json=payload)
|
||||
if response.status_code == 202:
|
||||
st.success("Specific test lead triggered!")
|
||||
st.toast("Check Teams for the notification.")
|
||||
else:
|
||||
st.error(f"Error: {response.status_code} - {response.text}")
|
||||
except Exception as e:
|
||||
st.error(f"Failed to trigger test: {e}")
|
||||
|
||||
st.button("📋 Copy to Clipboard", key=f"copy_{row['id']}", on_click=lambda: st.write("Copy functionality simulated"))
|
||||
else:
|
||||
st.info("Sync with Company Explorer first to generate a response.")
|
||||
|
||||
Reference in New Issue
Block a user