Templates (55 total, exceeds 49 target): - TIP: transceiver_enrich, datasheet_extract, compatibility_parse, blog_generator, faq_answer, hype_cycle_narrative, price_anomaly, vendor_classify, product_description - EO Global Pulse: business_card_ocr, voice_to_crm, event_prep_brief, attendee_enrich, meeting_suggest, lead_qualify, debrief_generate, ticket_summarize - SwitchBlade: root_cause, alert_narrative, cve_remediation, csrd_narrative, transceiver_advisor, bandwidth_report, ticket_draft, firmware_assess, topology_explain - PeerCortex: as_narrative, health_summary, rpki_explain, anomaly_hypothesis, peer_recommendation, incident_brief - NOGnet: cfp_evaluate, cfp_feedback, topic_gap_analysis, meeting_match, speaker_enrich, sponsor_pitch, event_debrief, agenda_summary, session_intro - ShieldX: threat_classify, pattern_describe, healing_recommend, compliance_report, false_positive - Content: linkedin_post_de, linkedin_post_en, newsletter_dispatch_de, email_draft_de - Internal: ban_detect, prompt_improve - Routing rules: +55 entries for all template-based task types - Ban lists: en.csv, de.csv, auto.csv created in Gitea (llm-banlists repo)
110 lines
4.7 KiB
YAML
110 lines
4.7 KiB
YAML
id: nog_speaker_enrich
|
|
version: "1.0.0"
|
|
task_type: nog_speaker_enrich
|
|
description: Enrich a speaker's name and affiliation with bio text and network context for conference speaker profiles
|
|
model_preference: qwen2.5:7b
|
|
model_minimum: qwen2.5:3b
|
|
temperature: 0.2
|
|
max_tokens: 1024
|
|
output_format: json
|
|
|
|
system_prompt: |
|
|
You are the speaker profile generator for NOGnet event management.
|
|
Generate professional bio text and enrich speaker profiles with network context.
|
|
|
|
Return ONLY valid JSON:
|
|
{
|
|
"name": "string",
|
|
"affiliation": "string",
|
|
"title": "string or null",
|
|
"bio_short": "string — 50 words, for program booklet",
|
|
"bio_long": "string — 150 words, for website and introduction",
|
|
"network_affiliation": {
|
|
"asn": number or null,
|
|
"asn_name": "string or null",
|
|
"ix_memberships": ["string"] or [],
|
|
"network_role": "string — what role this organization plays in the internet"
|
|
},
|
|
"expertise_tags": ["string — 4-6 tags relevant to their talk and background"],
|
|
"social_links": {
|
|
"linkedin": "string or null",
|
|
"twitter": "string or null",
|
|
"mastodon": "string or null"
|
|
},
|
|
"speaker_experience": "first-time|experienced|keynote-level",
|
|
"bio_based_on": "provided_data|inferred|peeringdb"
|
|
}
|
|
|
|
Bio writing rules:
|
|
- Third person, present tense ("Jonas Weber works at..." not "I work at...")
|
|
- Start with name and current role
|
|
- Mention specific technical areas, not vague descriptions
|
|
- For bio_short: Name, role, organization, 1-2 key technical areas
|
|
- For bio_long: Expand with career context, specific technical focus, relevance to this talk
|
|
- Do NOT fabricate credentials — only use what is provided
|
|
- If PeeringDB data is available, mention ASN/IX membership if relevant to speaker profile
|
|
- bio_based_on: "provided_data" if bio info was given, "inferred" if derived from talk title/abstract only
|
|
|
|
user_template: |
|
|
Speaker name: {{speaker_name}}
|
|
Affiliation: {{affiliation}}
|
|
Title: {{title}}
|
|
Talk title: {{talk_title}}
|
|
Bio provided by speaker: {{speaker_bio}}
|
|
PeeringDB context: {{peeringdb_context}}
|
|
Social media: {{social_media}}
|
|
|
|
Generate speaker profile:
|
|
|
|
few_shot_examples:
|
|
- user: |
|
|
Speaker name: Jonas Weber
|
|
Affiliation: KabelDeutsch GmbH
|
|
Title: Senior Network Engineer
|
|
Talk title: "From 100G to 400G: BGP Route Reflector Scaling Challenges in a Tier-2 ISP"
|
|
Bio provided by speaker: "I work on BGP and routing infrastructure at KabelDeutsch. We have about 250K customers and run a 400G core."
|
|
PeeringDB context:
|
|
org: KabelDeutsch GmbH
|
|
net_name: KABELDEUTSCH-NET
|
|
ASN: 64501
|
|
type: ISP
|
|
ix_memberships: [DE-CIX Frankfurt, ECIX Frankfurt]
|
|
info_prefixes4: 1247
|
|
Social media: linkedin: /in/jonasweber-net
|
|
assistant: |
|
|
{
|
|
"name": "Jonas Weber",
|
|
"affiliation": "KabelDeutsch GmbH",
|
|
"title": "Senior Network Engineer",
|
|
"bio_short": "Jonas Weber is a Senior Network Engineer at KabelDeutsch GmbH (AS64501), a German regional ISP serving 250,000 customers. He specializes in BGP routing architecture, route reflector design, and core network scaling.",
|
|
"bio_long": "Jonas Weber is a Senior Network Engineer at KabelDeutsch GmbH (AS64501), a German regional ISP with approximately 250,000 customers and a 400G core network. He works on BGP routing infrastructure, including the design and operation of route reflector clusters, and recently led the migration from virtual to bare-metal route reflectors using OpenBGPd during a major 400G core upgrade. KabelDeutsch is present at DE-CIX Frankfurt and ECIX Frankfurt, giving Jonas operational experience with large-scale peering environments. At DENOG 39, Jonas shares production data from his team's 6-month RR scaling project, including before/after metrics and open-source configuration templates.",
|
|
"network_affiliation": {
|
|
"asn": 64501,
|
|
"asn_name": "KABELDEUTSCH-NET",
|
|
"ix_memberships": ["DE-CIX Frankfurt", "ECIX Frankfurt"],
|
|
"network_role": "Regional German ISP, ~250K customers, 400G core, BGP full table"
|
|
},
|
|
"expertise_tags": ["BGP", "route-reflectors", "400G", "OpenBGPd", "ISP-operations", "network-scaling"],
|
|
"social_links": {
|
|
"linkedin": "https://linkedin.com/in/jonasweber-net",
|
|
"twitter": null,
|
|
"mastodon": null
|
|
},
|
|
"speaker_experience": "experienced",
|
|
"bio_based_on": "provided_data"
|
|
}
|
|
|
|
variables:
|
|
- speaker_name
|
|
- affiliation
|
|
- title
|
|
- talk_title
|
|
- speaker_bio
|
|
- peeringdb_context
|
|
- social_media
|
|
- few_shot_examples
|
|
|
|
validation_rules:
|
|
output_must_be_json: true
|
|
required_fields: ["bio_short", "bio_long", "expertise_tags"]
|