fix: Outreach speedup (Switch to Flash) & Robust MD Export
This commit is contained in:
@@ -43,35 +43,34 @@ export const StepReport: React.FC<StepReportProps> = ({ results, strategy, onRes
|
||||
};
|
||||
|
||||
const downloadMarkdown = () => {
|
||||
const signalHeaders = strategy.signals.map(s => s.name);
|
||||
if (!strategy || !results) return;
|
||||
|
||||
const signalHeaders = (strategy.signals || []).map(s => s.name);
|
||||
const headers = ["Company", "Prio", "Rev/Emp", "Status", ...signalHeaders, "Recommendation"];
|
||||
|
||||
const rows = sortedResults.map(r => {
|
||||
const signalValues = strategy.signals.map(s => {
|
||||
const data = r.dynamicAnalysis[s.id];
|
||||
const signalValues = (strategy.signals || []).map(s => {
|
||||
const data = r.dynamicAnalysis ? r.dynamicAnalysis[s.id] : null;
|
||||
if (!data) return '-';
|
||||
|
||||
let content = data.value || '-';
|
||||
// Sanitize content pipes
|
||||
content = content.replace(/\|/g, '\\|');
|
||||
|
||||
if (data.proof) {
|
||||
// Sanitize proof pipes and newlines
|
||||
const safeProof = data.proof.replace(/\|/g, '\\|').replace(/(\r\n|\n|\r)/gm, ' ');
|
||||
content += `<br><sub>*Proof: ${safeProof}*</sub>`;
|
||||
}
|
||||
return content;
|
||||
});
|
||||
|
||||
// Helper to sanitize other fields
|
||||
const safe = (str: string) => (str || '').replace(/\|/g, '\\|').replace(/(\r\n|\n|\r)/gm, ' ');
|
||||
|
||||
return `| ${safe(r.companyName)} | ${r.tier} | ${safe(r.revenue)} / ${safe(r.employees)} | ${r.status} | ${signalValues.join(" | ")} | ${safe(r.recommendation)} |`;
|
||||
});
|
||||
|
||||
const content = `
|
||||
# Market Intelligence Report: ${strategy.productContext}
|
||||
**Context:** ${strategy.idealCustomerProfile}
|
||||
# Market Intelligence Report: ${strategy.productContext || 'N/A'}
|
||||
**Context:** ${strategy.idealCustomerProfile || 'N/A'}
|
||||
|
||||
**Search Strategy ICP:** ${strategy.searchStrategyICP || 'N/A'}
|
||||
**Digital Signals:** ${strategy.digitalSignals || 'N/A'}
|
||||
|
||||
@@ -547,14 +547,13 @@ def analyze_company(company_name, strategy, target_market):
|
||||
def generate_outreach_campaign(company_data_json, knowledge_base_content, reference_url, specific_role=None):
|
||||
"""
|
||||
Erstellt personalisierte E-Mail-Kampagnen.
|
||||
Modus A (Default): Generiert Top 5 Kampagnen + Liste weiterer relevanter Rollen.
|
||||
Modus B (specific_role): Generiert nur Kampagne für diese eine Rolle.
|
||||
"""
|
||||
company_name = company_data_json.get('companyName', 'Unknown')
|
||||
logger.info(f"--- STARTING OUTREACH GENERATION FOR: {company_name} (Role: {specific_role if specific_role else 'Top 5'}) ---")
|
||||
|
||||
api_key = load_gemini_api_key()
|
||||
GEMINI_API_URL = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-pro:generateContent?key={api_key}"
|
||||
# Use gemini-2.5-flash for SPEED in outreach generation
|
||||
GEMINI_API_URL = f"https://generativelanguage.googleapis.com/v1/models/gemini-2.5-flash:generateContent?key={api_key}"
|
||||
|
||||
if specific_role:
|
||||
# --- MODE B: SINGLE ROLE GENERATION ---
|
||||
|
||||
Reference in New Issue
Block a user