Introduction: Why data storytelling with LLMs is essential today
The latest LLM models for data storytelling
The LLM landscape has evolved rapidly in 2026. Three open-source advancements are redefining whatโs possible for data storytelling.
Nanbeige4.3-33B: A versatile model for extended contexts
Nanbeige4.3-33B is a dense Apache 2.0 model with 33 billion parameters and a 512K token context window. Its large context window makes it ideal for incorporating entire datasets, product logs, or extended time series directly into prompts without fragmentation. With a performance score of 80.9% on Terminal-Bench 2.1, it ensures factually accurate and coherent narratives.
TokenGate: Accelerating prefill for faster stories
TokenGate, developed by Stanford and UC Berkeley, is a learned token pruning module that accelerates prefill by up to 11.3x. For data storytelling teams, this means faster generation times, especially when creating multiple story versions or responding to user questions in real time.
AKV: Cache management for LLM agents
AKV, released by Tsinghua AI and based on SGLang, introduces a cache engineering system optimized for LLM agents. Instead of summarizing previous contexts, AKV positions and retrieves KV cache, preserving vital contextual information for coherent narratives and minimizing token loss.
How to build a data storytelling workflow with LLMs
A practical workflow can be divided into four main stages. Each stage includes concrete prompts and code snippets you can copy and modify.
Step 1: Data preparation
- Upload the dataset (CSV, Parquet, or live database).
- Normalize column names and remove missing values.
- Optionally, generate a brief statistical summary with an LLM for a quick quality check.
# Example using pandas + Nanbeige4.3-33B for a quick summary
df = pd.read_csv('sales.csv')
prompt = f"Provide a summary of {len(df)} rows of data, highlighting the maximum, minimum, and average values for numerical columns."
story_summary = llm.generate(prompt) # uses a custom wrapper
print(story_summary)Step 2: Prompt design
A well-structured prompt tells the LLM what story to tell, to whom, and for what purpose. Use the "Context-Insight-Action" framework:
- Context:Provide the data or a brief description.
- Insight:Ask the model to highlight trends, anomalies, or relationships.
- Action:Request a structured narrative (e.g., introduction, main body, conclusion) tailored to the audience.
prompt = f"""
You are an experienced business intelligence analyst. You have the following dataset at your disposal: {df.head().to_string()}.
Identify one of the following aspects:
1) A rising/falling sales trend by region,
2) A seasonal peak,
3) A cross-selling opportunity.
Write a natural language story suitable for a non-technical audience, with an introduction, main body, and conclusion. Highlight key data points.
"""
story = llm.generate(prompt)Step 3: Story generation
Inject the prompt into your chosen model. For larger datasets, consider using TokenGate to accelerate prefill, especially if youโre generating iteratively.
Step 4: Visualization and iteration
- Transform the generated story into visualizations (charts, tables) using tools like Tableau, Power BI, or open-source Python libraries (Matplotlib/Seaborn).
- Iterate based on feedback: adjust the prompt or refine the data to emphasize new aspects.
Practical example: From CSV to presentation in 5 minutes
Follow these steps in a Jupyter notebook to create a data storytelling presentation ready for sharing.
Complete example code
Practical tips and best practices
Prompting tips
- Be specific:Instead of saying "show trends," ask "identify the month with the highest sales increase and explain why."
- Define the audience:Tailor the level of jargon and detail for executives, analysts, or technical audiences.
- Request highlights:Ask the model to format key numbers as bullet lists for easy reading.
How to iterate with feedback
- Capture user quality scores (e.g., clarity, completeness) after each iteration.
- Record the exact prompt and model parameters in a notebook for reproducibility.
- Use AKV to cache frequent prompt contexts, reducing wait times and keeping stories consistent over time.