Logaritim
Question pool and exam builder
FastAPI and Pydantic; course PDFs are parsed with PyMuPDF, questions are generated and checked with Gemini, and exam papers are built as PDFs on the server.
See the productAll of them are live; store pages and details are on the Products page.
Question pool and exam builder
FastAPI and Pydantic; course PDFs are parsed with PyMuPDF, questions are generated and checked with Gemini, and exam papers are built as PDFs on the server.
See the productPython’s real strength is the libraries around it. PDF reading, image processing, tables and numerical work, chart drawing and the official SDKs of AI models are mature and well documented in Python. When a server’s job is not just keeping records but understanding documents, transforming data or talking to a model, we choose Python. With FastAPI, the same code also goes live as a tidy API that other systems connect to.
Logaritim generates questions from course material, checks them, collects them in an approved pool and lets institutions build exams from that pool. The whole pipeline is written in Python:
Institutions connect to Logaritim’s question pool over an API. Long generation jobs run in the background, and when a job finishes the result is sent to the other system through a webhook signed with HMAC. API keys are shown only at the moment they are created; the database keeps only their hashes.
| Task | Library | Where it sits in Logaritim |
|---|---|---|
| API and input validation | FastAPI, Pydantic | The endpoints institutions connect to, and the admin panel |
| Running on the server | Gunicorn, Uvicorn, Docker | The API process, running with several workers |
| Reading and writing PDFs | PyMuPDF | Parsing course material, exam paper and answer key |
| AI | google-genai (Gemini, Vertex AI) | Question generation, independent solving and judging |
| Semantic search | PostgreSQL, pgvector | Finding the course content that fits a topic |
| Drawing | matplotlib, Shapely | Graphs, geometric figures, maps |
| Rate limiting | slowapi | Limiting the requests that reach the API |
We talk about which documents or data the system will work with, who the output is for and the budget you have in mind.
We write down the input formats, the expected output, the quality-control rules and the AI model to be used.
Every week we deliver a working build; you run the pipeline on your own sample documents and see the results.
A senior QA tests the build before release; then the service goes live.
We fix the bugs that surface in this period free of charge; after that you can continue with monthly maintenance.
Timelines and budget ranges are published on our AI automation and pricing pages; everything on this page follows the same figures.
In systems like these most of the time goes to the model, the database and file work; the language itself is not the bottleneck. FastAPI is asynchronous, Gunicorn starts several Uvicorn workers, and numerical work runs in libraries written in C, such as NumPy.
Logaritim has three layers: rule-based checks first remove formatting errors, then a second model solves the question without seeing the answer, and finally a judge step compares the two results. Only approved questions enter the pool.
In Logaritim we use Google Gemini through both the Gemini API and Vertex AI, and every call is logged with its token usage. On the Rigel and LydiaVault servers we use OpenAI. We choose the model to fit the project.
Through a documented REST API, an API key and a signed webhook that arrives when a job is done. That is how institutions connect to Logaritim’s question pool.
A perpetual licence to use the software, and its documentation. Handing over the source code is possible if you want it; the extra fee is written separately in the quote.
In a free 30-minute scoping call we work through your documents, the output you expect and where AI will actually help.