What it does
One pipeline from unstructured text to publication-ready IEEE paper. No manual formatting. No template wrestling.
Local Mode — No API Key
Runs fully offline via Ollama (qwen2.5:7b, llama3, mistral).
Zero cost, zero data sent to the cloud. Select Local (Ollama) in the sidebar.
Cloud Mode — Claude AI
claude-opus-4-8 with adaptive thinking and forced tool use for
highest-quality extraction from complex or ambiguous inputs.
Strict IEEE Layout
Letter-size, mirrored margins, single-column title block, continuous-break into two justified columns, Times New Roman typography, Roman-numeral headings.
Multi-format Input
Paste raw text or upload a .txt, .md, or .docx
file. The AI infers and fills missing sections from context.
IEEE Formatting Specification
Every output is validated against these constraints before download.
| Property | Value |
|---|---|
| Page size | Letter (8.5 x 11 in) |
| Margins | 1 in all sides, mirrored (odd/even pages) |
| Title font | Times New Roman 24 pt, centered |
| Author block | Times New Roman 10 pt (name) / 10 pt italic (affiliation) |
| Abstract / Keywords | Times New Roman 9 pt bold-italic label + 9 pt italic body |
| Body columns | 2 equal columns, 0.32 in gap, continuous section break |
| Body font | Times New Roman 10 pt, justified, 0.15 in first-line indent, 12 pt exact leading |
| Section headings | Level 1: Roman numeral (I. INTRODUCTION) centered bold; Level 2: Letter (A. Background) left italic |
| References | Times New Roman 8 pt, hanging indent, IEEE bracket style |
Local Mode (No API Key Required)
Run entirely on your machine — free, private, offline.
- Install Ollama Download from ollama.com and start it.
-
Pull a model
ollama pull qwen2.5:7b(recommended) orollama pull llama3 -
Clone and install
git clone https://github.com/sunilgentyala/ieee-agentic-formatter.git && pip install -r requirements.txt -
Run — no .env needed
streamlit run app.py— sidebar defaults to Local (Ollama)
ollama pull qwen2.5:7b
git clone https://github.com/sunilgentyala/ieee-agentic-formatter.git
cd ieee-agentic-formatter
pip install -r requirements.txt
streamlit run app.py
# Open http://localhost:8501 — Local (Ollama) is selected by default
Cloud Mode (Anthropic API)
Highest quality for complex inputs — requires an Anthropic API key.
-
Clone and install
git clone https://github.com/sunilgentyala/ieee-agentic-formatter.git && pip install -r requirements.txt -
Add your API key
echo "ANTHROPIC_API_KEY=sk-ant-..." > .env -
Run and switch backend
streamlit run app.py— select Anthropic API in the sidebar -
Paste or upload content and click Generate
Download the IEEE-compliant
.docxinstantly.
Architecture
Three clean modules, zero circular dependencies.
agent/
models.py -- Pydantic v2 data models (IEEEPaper, Author, Section).
text_parser.py -- Two backends:
• parse_raw_text(): Anthropic streaming + forced tool_choice
• parse_raw_text_local(): Ollama OpenAI-compat endpoint + JSON-schema prompting
formatter/
docx_engine.py -- python-docx + raw OOXML (OxmlElement) to inject
w:mirrorMargins, two-column w:cols, and exact-leading paragraph
spacing without a Word template dependency.
Stack
Ollama (Local)
qwen2.5:7b, llama3, mistral via OpenAI-compatible endpoint. Fully offline, zero cost.
Claude claude-opus-4-8
Anthropic's most capable model with adaptive thinking and structured tool-use output.
python-docx + OOXML
Fine-grained Word document control via both the high-level API and raw XML injection.
Pydantic v2
Schema-validated structured output ensures the formatter always receives well-formed data.