AI-Powered

Translate documents,
smarter.

Polydoc uses vector embeddings to cache and reuse past translations — cutting costs and keeping terminology consistent across your documents.

Built to be simple

Upload a document, pick a language — Polydoc handles the rest. The translation result shows exactly how much was saved from the cache.

polydoc.app
Polydoc homepage — upload a document and select a language
polydoc.app/translate
Polydoc translation result — translated document with reuse rate summary

Vector Caching

Past translations are stored as high-dimensional embeddings and reused automatically when semantically equivalent text appears.

Formatting Preserved

Tables, headers, footers, and paragraph styles are extracted and reassembled — your document structure survives translation intact.

Cost Savings

Cached segments skip GPT-4o entirely. Only novel content touches the API — proven to reduce translation costs by up to 21.5%.

The Problem

Translation is expensive

LLM APIs charge per token. Large document portfolios — legal contracts, product manuals, subtitle libraries — repeat the same phrases constantly. Without caching, you pay for every word on every run.

The Solution

Polydoc fixes that

Each translated segment is stored as a high-dimensional embedding. Before touching the API, Polydoc checks whether a semantically equivalent translation already exists. If it does, the result is returned instantly — no API call, no cost.

Why semantic search?

Exact string matching would miss almost every reuse opportunity. Real documents paraphrase and rephrase — meaning stays the same while words change.

Exact matching

Cached sentence

"The payment must be completed by end of month."

Incoming sentence

"Payment is due before the month concludes."

Cache miss

Different strings — sent to GPT-4o, cost incurred

Semantic search

Cached embedding

"The payment must be completed by end of month."

Incoming sentence

"Payment is due before the month concludes."

Cache hit · distance 0.11

Semantically equivalent — translation reused instantly

Cost Savings

Polydoc was tested against the Friends TV show subtitle corpus. As episodes accumulate in the cache, reuse climbs — each new episode costs less to translate.

Figures represent cumulative subtitle reuse rate across sequential episodes. Episode 1 bootstraps the cache from zero.

How it works

01

Upload

Upload a .docx file and choose a target language. Polydoc extracts every text segment — paragraphs, tables, headers, and footers — preserving the original structure.

02

Cache Lookup

Each segment is embedded with text-embedding-3-small and queried against ChromaDB. Segments within cosine distance 0.3 of a past translation are reused instantly — zero API cost.

03

Translate & Store

Only novel segments reach GPT-4o. New translations are embedded and stored back into ChromaDB, growing the cache smarter with every document.

By the numbers

0%

Cache hit rate

on structured documents

0%

Cost savings

on serialised corpora

0%

Cost reduction

on a 1,000-line benchmark

0

Languages

supported out of the box

Figures from controlled research benchmarks. Results vary by document similarity.

Tech Stack

CI/CD with GitHub Actions

Every push is validated automatically — Playwright E2E tests run on all PRs, and infrastructure is provisioned via Terraform on merge to master.

playwright.yml E2E Tests
GitHub Actions Playwright test runs — 12 workflow runs, all passing

Playwright tests run on every push and pull request to master, catching regressions before they land.

aws-provision.yml Infrastructure
GitHub Actions Terraform workflow — Terraform plan and deploy steps, both passing in 53s

terraform plan runs on PRs; terraform apply deploys Lambda, S3, and IAM automatically on merge to master.

Live metrics with Grafana

Every translation emits custom CloudWatch metrics — total segments, reused segments, cost savings, and user edits — streamed into a Grafana dashboard for real-time monitoring.

Grafana dashboard
Grafana dashboard showing 249 documents translated, $0.346 total cost savings, 48.5% reuse rate and cost savings over time

249

Documents translated

48.5%

Average reuse rate

14

User edits tracked

Metrics are emitted to CloudWatch on every Lambda invocation and visualised in Grafana using a public dashboard — no login required.

View live dashboard ↗

Claude Skill

Polydoc ships as an installable Claude skill — enabling AI agents in Claude Desktop to translate documents through natural language, with no UI required.

Claude Desktop
Claude Desktop using the Polydoc skill to translate a document to Czech
1

Natural language trigger

Drop a .docx file and say which language you want. Claude detects the intent and activates the skill automatically.

2

Direct Lambda invocation

The skill calls translate() in Python, which base64-encodes the file and invokes the Polydoc AWS Lambda — the same backend the web app uses.

3

Result with metrics

The translated .docx is downloaded from S3 and opened in Claude's file preview. Cache reuse rate and cost savings are reported inline.

Supported languages

CzechSpanishPortuguese SlovakFinnishSwedish UkrainianItalianFrench GreekGerman

Contact

This is a Final Year Project. Questions, feedback, or collaboration are welcome.

FM

Filip Melka

Developer & Researcher