AI software development company: private LLMs and AI in your product

We build software around language models: private LLMs for sensitive texts, evaluation of model output, AI inside existing products and AI for accessibility. For PSONI, a Polish NGO, we host an open model on rented GPU servers and score its output with a readability metric and a reviewer.

Book a free discovery call

Tell us what you're building.

A few details let us bring the right engineers to the first call.

AI software development services: from discovery to run

A project runs in five steps: discovery, proof of concept, MVP, launch and support. Each step answers one question.

Every project starts with a free basic discovery: one meeting, from which we prepare a basic proof of concept or a mockup that lets us estimate the cost. The workshop doubles as an AI readiness assessment. We look at your product and your data, including whether the data may leave your infrastructure, at the legal, security and company rules, and at the task together with its test. Our own AI toolkit supports the session, and a scope, an estimate and a defined success test come out of it. In discovery we also size the model and the GPU servers against the expected traffic. A wider discovery is a separate, larger scope, and sometimes the outcome is advice to skip the language model altogether.

The steps of an AI project

What each step of an AI project answers, what you receive and where we have run it.
StepThe question it answersWhat you receiveExample from our projects
DiscoveryWhat should the AI do, and which test will show that it works?A scope and an estimateA sales forecasting project began with a short technical study of the data sources
Proof of conceptCan a model do this task well enough on your data?A working prototype on your real task, as in our article on AI proof of concept developmentPSONI: a first prompt and a readability script
MVPDoes it work for real users?The backend, accounts, web and mobile apps around the model, as on our page on AI MVP developmentGenerator ETR for PSONI, a web and mobile app
LaunchIs the feature live, and can we watch it work?A production featureAI summaries on Enerace, live since 2025
SupportWho keeps it running as models, prompts and data change?Ongoing support and maintenanceThe renovation platform, our client since May 2022
Presentation to a team at a conference table with laptops (Unsplash free license)

Where AI already works in products we build

Centrum Komunikacji, Enerace and the renovation platform are in production. PSONI and the forecasting system are in progress.

PSONI: Generator ETR, easy-to-read text from a self-hosted model

PSONI, the Polish Association for Persons with Intellectual Disability, commissioned Generator ETR from us. It is a web and mobile app that turns difficult text, such as an official letter, into easy-to-read language (ETR is the abbreviation used in Poland for easy-to-read). The contract was signed on 26 February 2026 for 24 months, until February 2028, and is split into eight stages.

The texts people paste in can be personal, so a public AI API was ruled out. The work began as a proof of concept that compared two language models on one text-simplification task: PLLuM 12B, a Polish language model, and the 26B mixture-of-experts version of Gemma 4. Gemma 4 gave better results on the project's data and stayed. We host it ourselves on rented GPU servers and serve it with vLLM, so no text goes to an AI provider's API.

AI text simplification (Unsplash)

AI implementation: how Generator ETR is built and checked

Generator ETR grew from a GPU proof of concept into a web and mobile app, and every model version is scored and reviewed. Its model, Gemma 4 26B A4B, has 26 billion parameters and activates about 4 billion per token, yet all 26 billion have to sit in GPU memory. Google's documentation lists about 57.7 GB in 16-bit down to 14.4 GB in 4-bit quantization (quantization stores the model's weights at lower numeric precision), before the cache for active conversations. We size GPU servers against figures like these.

Deployment scripts start a GPU instance, install vLLM with the Gemma 4 weights and expose an API compatible with the OpenAI specification. The model runs on fixed GPU instances rented from a provider, and since September 2026, ahead of PSONI's acceptance tests, the staging environment runs on fixed GPU capacity, which keeps the model available.

The backend uses Django and Celery, and the apps use React and React Native. Users sign in with an account verified by SMS. The phone reads text from a photo of a letter with Google ML Kit and Apple Vision, and PDF documents go through a separate pipeline on the server. A glossary explains difficult words in the context of the sentence, text-to-speech highlights the fragment being read, and results export to DOCX. A history keeps past simplifications, and a "simplify more" option produces one further level. A normalisation step expands abbreviations, dates and numbers and makes Polish numerals agree with the nouns they count.

PSONI decided on 1 October 2026 to open a public API, which is under construction. It has four endpoints: login with a token, generating an ETR text, the user's list of texts and a preview of a past text.

The first evaluation pipeline was delivered in June 2026: a first system prompt that instructs Gemma 4 to follow the easy-to-read rules, a Python script that scores each output and an aggregated Markdown report from runs on synthetic samples. Editors check the collection of texts behind the samples in a separate online service. A reviewer trained in the standard then rates real outputs against their sources, and the results feed the next iteration of the prompt and the model. The iterations have defined goals: expanding abbreviations according to the source text, formatting with headings, bullet points and paragraphs of four to six lines, and replacing words that are too difficult. The normalisation for reading aloud is checked against a fixed sample text that covers numerals, ordinal numbers, decades, Roman numerals, ranges and negative numbers.

QA tries to pull the model away from its job, for example by asking for an apple pie recipe instead of a simplified letter, and repeats those jailbreak tests with each new iteration. For legal and medical texts the app shows a notice that the simplified version is not a legal document and that a lawyer or doctor can explain the details. A classifier for sensitive content (hate speech, self-harm, depression, fraud) is in the testing phase.

Sensitive data is encrypted with Fernet, files sit in a private bucket with encryption at rest, and content has a default retention of 30 days. Microsoft Presidio creates an anonymised copy of a text only when the user has not objected to the use of their texts for AI training, and anonymised texts can be exported as one JSON file to build a training corpus.

Code on screen (Unsplash)

Centrum Komunikacji: a sign language platform with live speech-to-text

The Polish Association of the Deaf runs Centrum Komunikacji, a Polish Sign Language (PJM) interpreting platform financed from the European Funds for Social Development 2021-2027. The web and mobile app serves deaf, deafblind and blind people with audio and video calls, chat, history and queueing. Workshops with the client took place in July 2025, and the platform went into production on 20 April 2026, nine months later.

Live speech-to-text for hard of hearing and late-deafened users is one of the features we added. The association ruled out raw speech recognition, because automatic captions confuse names, addresses and medicine names. Instead the text is corrected during the conversation, before the user sees it. Speech recognition writes a first draft, a transcription specialist corrects it, and only the corrected text reaches the user as a chat message. A session lasts up to 30 minutes and is available at once, within the limits of the specialist's availability.

The recognition engine is open-source Vosk with a Polish model, and the other key components (LiveKit, PostgreSQL and Redis) are open source as well. Hosting and data stay in the EU. Vosk runs in the specialist's browser through WebAssembly, so audio does not go to an outside API. In the interface draft text and approved text have different colours, and each speaker (the client, the specialist and the person on the phone) gets a separate stream. The phone line also supports live transcription: a hard-of-hearing person calls, and a specialist transcribes the other side. The full story is in the Centrum Komunikacji case study.

Enerace: AI summaries on an energy procurement platform

We have built and developed Enerace.Online, an advisory platform for industrial buyers of energy and gas, since 2020. Market news items are pinned to the price charts, and each item receives a summary written by AI at the moment it is added, not on every read. The feature has been live since 2025.

The platform has more than 20 functional areas in one codebase, and the AI feature arrived without rewriting it. More about the platform is in the Enerace case study and on our page about energy procurement software.

Laptop showing an analytics report with charts (Unsplash free license)

A renovation platform: in-app AI chat and product-search agent

One of our long-term clients is a product platform in the home renovation and interior fitting market (the client stays anonymous). The platform is a system for managing renovations and property finishing: ordering products, an AI-supported search engine, managing work and communication with workers. It is built in Python, Django and Django REST Framework.

The AI chat inside the app and the product-search agent are in production today. We have worked with this client since May 2022 and the collaboration is ongoing.

Sales forecasts for a live-events company: statistical models on ticket data

We are building a sales forecasting system for a company from the live events market, another anonymous client. The forecasting models are statistical and trained on ticket sales data. The project started in September 2026 and is in progress. Ticket sales data comes from several sources: the client's events service, a ticketing platform, an international events aggregator and the client's spreadsheet. It feeds a data warehouse built with dlt and dbt on ClickHouse, orchestrated in Dagster.

The models forecast the final sales of an event from comparable, finished sales curves, with an empirical interval, and stay silent when there are fewer than five comparable curves. They also calculate sales pace against the median of comparable events, the risk of selling out and anomalies in the basket. The analysis covers the effect of weather on attendance and sales. Recommendations are checked with a backtest. Training and validation of the algorithm were closed on 20 October 2026.

The results reach a portal with an event list, a sales plan and a "how it is going" rating, with user accounts and roles, built with Django, DRF and Next.js. The infrastructure is a monorepo with Docker, ClickHouse, PostgreSQL, Traefik and CI.

Analytics dashboard (Unsplash)

Private and on-premise LLMs

A private LLM is a language model that runs on servers you or your hosting provider control, so the texts it reads never pass through a public AI API. That is the choice we made for PSONI. The same setup of an open model, vLLM and an application around them can run on-premise on your servers, if they have suitable GPUs, or with a cloud provider in the region your rules require. Our page on on-premise LLM deployment covers the options, and the glossary explains how self-hosted LLMs differ from API models.

Private LLM or public AI API

How a private LLM deployment differs from a public AI API on data, model versions, cost, quality and operations.
QuestionPublic AI APIPrivate LLM
Where does the data go?Every prompt and document leaves your infrastructure for the provider's serversTexts stay on servers that you or your hosting provider control
Which model do you run?The provider retires old versions on its own scheduleThe open model version you tested stays for as long as you need it
How do you pay?Per tokenFor GPU time, whether the model is busy or idle
What quality can you expect?The largest models are stronger at general tasksBest on a narrow task with its own evaluation
Who keeps it running?The providerYou, or us as part of support and maintenance
AI technology (Unsplash)

AI agents and chatbots

An AI agent is a language model that can call tools, such as a search over product data, and carry a conversation toward a result. The product-search agent on the renovation platform is one example. It searches the texts and metadata of many products at once, and across the offers of many suppliers. Part of the work moved from the model to Python code for repeatability: the code builds the search query, so the same question always gets the same answer, and the model holds the conversation.

When a search finds nothing, the agent repeats it with changed parameters. For a price question it fetches the price, and the answer carries the source address of the product. Each message to the AI carries the customer's context (name and phone number), so the conversation can move on to customer service. Our page on AI agent development explains how we design agents, and the glossary entry on MCP defines the protocol agents use to reach a system.

In-product AI chat assistant (Unsplash)

AI integration into an existing product

AI integration means adding a model-driven feature to a product that already works, without rebuilding the product. In our AI integration services the work goes through discovery, a separate AI service, model choice, quality checks and support after launch. By default the backend of the application has a service layer that calls a separate AI service, so the AI part can be measured, changed or switched off alone. The choice of model depends on where the data may go: a model provider's API or a model we host. On the renovation platform the chat and the agent run in a separate AI service, and a project-level flag, ai_enabled, switches the AI on or off.

Where an AI feature can live in a product

Five ways to integrate AI into an existing product and when each fits.
OptionHow it worksWhen it fits
Separate AI serviceThe backend's service layer calls an AI service of its ownThe AI part has to be measured, changed or switched off alone
Provider APIThe application sends requests to a model provider's APIYou want a faster start, and the data may leave your infrastructure
Model we hostWe host an open model and the application calls itThe data may not go to a provider
API for other systemsThe AI service exposes an interface that other systems callSeveral products or teams share one AI capability
MCP serverAI agents call the product's functions through the Model Context ProtocolAn agent needs controlled access to the product
AI chat interface with interior design image results on iPad

AI proof of concept and AI MVP

A proof of concept shows that a model can do the task on your data, and an MVP puts that model in front of real users. The difference is what surrounds the model. The proof of concept needs a prompt, test samples and a quality measure. The MVP adds the backend, accounts and the web and mobile apps, and keeps the proof-of-concept measures running.

Two colleagues discussing work at laptops, seen through glass (Unsplash free license)

MCP servers for AI agents

An MCP server lets an AI agent work with a system through a defined set of tools. MCP was introduced by Anthropic on 25 November 2024 and donated to the Agentic AI Foundation, part of the Linux Foundation, in December 2025, when more than 10,000 public MCP servers were active. The specification of 28 July 2026 describes it as stateless: each request carries its own protocol version and capabilities.

We run our own: since 9 July 2026 a production MCP server has served the CMS of this website. On 20 October 2026 it had 164 tools covering pages, content, SEO and GEO, schema.org, media, menus, redirects, Search Console and GA4 analytics, and leads. It is a thin layer over the CMS REST API, so validation and permissions live in the API. Each person or integration has its own token, and an administrator manages the tokens and reviews the call log in the Wagtail admin panel.

The rules an agent cannot break sit in the server as response codes. A page without a brief that ties it to a goal and a sales-funnel role returns HTTP 400, and content before a human approves the brief returns HTTP 409. Publishing with audit errors, such as facts outside the approved list or a missing verdict from an independent critic agent, returns HTTP 409 too. For live pages a correction mode publishes a draft only when its audit finds nothing worse than the live version. A person approves the brief before an agent writes any content.

A public endpoint at ordergroup.co/mcp has been open without a token since 8 October 2026. It has two tools, one that lists case studies and one that submits a project enquiry. Each call is one POST with a JSON-RPC message, answered with JSON and no session, and an enquiry goes through the same function and rate limit as the REST contact form. The endpoint is listed in the official MCP registry as co.ordergroup/public. The details are on our page about MCP server development, and the article MCP vs API compares MCP with a plain API.

Earth at night with glowing city lights and network of connections (Unsplash)

AI automation in the products we build

AI automates the repeatable reading and writing around a product, and people keep the decisions. On Enerace the model writes a short summary of each news item in English and in Polish. It assigns the item one of 9 commodity types and one of 38 countries or regions, and it gives a market direction rating (rise, fall or unchanged) with a short justification. The rating is the model's assessment, and a person confirms it. A crawler fetches the article text automatically, with a browser as a fallback. When that fails, an editor pastes the text in. Generation runs as a background task in Celery, and an editor can generate a summary again.

Our article on AI in custom software for renewable energy lists further uses in that field.

AI content generation writing (Unsplash)

How we check that AI output is good enough

Centrum Komunikacji and Enerace check every result before users see it, while the other projects check samples, conversations or past data.

The measure belongs to the project. On PSONI it is the Gunning Fog index, which estimates how many years of schooling a text demands. It was designed for English, so on Polish text it works as a trend between versions, and it lets us compare one prompt or model version with the next. The glossary entry on LLM evaluation explains the method.

How AI output is checked in our projects

How the output of AI is checked in each project and who checks it.
ProjectHow we checkWho checks
PSONIA readability score and a report on a set of test samples; jailbreak testsA reviewer trained in the ETR standard compares each result with its source text; QA
EneraceEach summary has a status: new, in progress, generated or confirmed; only confirmed ones reach the reports and the news list in the appAn editor
Centrum KomunikacjiThe user sees only corrected textA transcription specialist
Renovation platformRounds of analysis on real conversationsOur team
Sales forecastsA backtest for every recommendationThe analysis team
Two engineers reviewing code on a monitor in an office (Unsplash free license)

AI for accessibility: text and speech for readers and deaf users

Accessibility AI, or AI for accessibility, means using language models and speech technology to make content usable for people who cannot use it as it is. Our projects cover two groups: readers with intellectual disabilities, and deaf and hard of hearing users. The first group needs simpler text and speech, the second needs speech turned into text.

In both cases a person closes the loop: a reviewer trained in the easy-to-read standard checks simplified text, and a specialist corrects speech recognition before anyone reads it. The PSONI specification requires WCAG 2.2 at level AAA, and later stages include accessibility checks with screen readers and in the DOCX files the app generates. Our page on easy-to-read explains the standard.

Accessibility also has a legal side. The European Accessibility Act (Directive (EU) 2019/882) has applied since 28 June 2025 to, among others, consumer banking services. In Poland the act of 26 April 2024 on ensuring compliance with accessibility requirements applies.

AI text-to-speech audio (Unsplash)

Technologies we use

Our AI projects pair a model layer with ordinary application software.

The glossary entry on self-hosted LLMs lists what a self-hosted model needs: GPU capacity sized from the number of concurrent requests and a load test on realistic documents, a pinned model version, a health check with automatic restart, timeouts, a maximum input size and a queue limit, and a recorded licence of the weights.

Our article on AI proof of concept development describes a workflow in which the frontend is built first, with an interactive preview, using v0.dev (React, Shadcn UI and Tailwind CSS). Cursor IDE then generates the backend endpoints that support it, for example Django views and serializers or FastAPI.

Technologies in our AI projects

The tools we use in each layer of an AI project and the projects where they appear.
LayerWhat we useWhere
Models and servingGemma 4 26B A4B served by vLLM; PLLuM 12B tested as the alternative; Bash scripts and Docker to start GPU instances repeatablyPSONI
Personal data and accessibilityMicrosoft Presidio to anonymise texts; Google ML Kit and Apple Vision to read text from photos on the device; a separate PDF pipeline on the server; speech synthesis that highlights the fragment being readPSONI
Applications and backendDjango, Django REST Framework and Celery for the API and background tasks; React and React Native for the web and mobile apps; GraphQL API, TypeScript and AWSPSONI, Enerace
Data and forecastingdlt and dbt on ClickHouse to load and model ticket data; Dagster to orchestrate it; PostgreSQL and Next.js for the portal; Traefik at the edgeSales forecasting project
Real-time communication and infrastructureDjango; React and React Native (Expo); self-hosted LiveKit with end-to-end encryption and LiveKit SIP for calls; a PostgreSQL cluster with failover; Redis Sentinel; S3Centrum Komunikacji
MCP serverThe official MCP SDK for Python (FastMCP), stdio locally and streamable HTTP in production; a Docker container without root privileges, a /healthz health check, nginx with TLS; Swagger UI and an OpenAPI schemaOur CMS server
Developer's laptop with source code on screen (Unsplash)

Data protection and the AI Act: the requirements behind our software

Where the model runs is the first decision when texts are sensitive. We choose the location with you in discovery, against the rules your organisation works under.

GDPR covers what a system stores, for how long and who can access it, not only where the model runs. In our projects these requirements became features. On Centrum Komunikacji personal fields are encrypted with a symmetric key, and a user's data can be deleted irreversibly on request, with a log of who did it, when and on what basis. Our page on data anonymization covers the technique.

The EU AI Act (Regulation (EU) 2024/1689) divides AI systems by risk. The high-risk group includes systems that assess the creditworthiness of natural persons, with the exception of fraud detection (Annex III, point 5(b)). Its obligations apply from 2 December 2027 under Regulation (EU) 2026/1744, the Digital Omnibus on AI package. Our glossary entry on the EU AI Act explains the structure of the regulation.

Team members taking notes around a wooden meeting table (Unsplash free license)

Why organisations build AI with us

A project starts with the free basic discovery and a kick-off with the client. We agree the methodology, set up YouTrack and the communication channels, and assign the roles: a Project Tech Leader, a Product Owner and, optionally, a Scrum Master. The first estimate covers the whole scope and starts from the simplest delivery route, with ready-made solutions where they fit.

Copyright to the code passes to the client with each payment, within the fields of exploitation named in the contract. After launch we stay on for support and maintenance, because models, prompts and data keep changing.

AI features run in production on Enerace, on Centrum Komunikacji and on the renovation platform, and a model can run on servers we host, as on PSONI.

How to choose an AI development company

A good AI development company can answer a handful of questions with named projects and facts. These are the questions we would ask a supplier, with our own answers.

  • Can they show a named project that involves a model and real data? Ours are PSONI, Enerace and Centrum Komunikacji.
  • How do they choose a model? By testing candidates on your task.
  • How do they measure quality? With a metric, a human reviewer, jailbreak tests or a backtest, depending on the project.
  • Who checks the output before a user relies on it? A transcription specialist on Centrum Komunikacji and an editor on Enerace check results before users see them. A trained reviewer and QA rate each iteration of the model on PSONI.
  • Where does the model run and what happens to the data? It can run on rented GPU servers, in a cloud region your rules require or on your own servers.
  • How does the work begin? With a free basic discovery.
  • What happens after the launch? Support and maintenance.

Have a task where a language model could do real work, but data or accessibility rules make it hard? Start with a free discovery call.

Software projects
160+

across all industries

Team
40+

full-time

App users
40,000+

across all our projects

Read more

AI articles from our blog

Do you have questions?

AI software development company - FAQ

Łukasz Gajownik
Łukasz Gajownik
Head of AI & Frontend
Book a free discovery call
  • Software in which a language model does a specific job for real users. That covers private and on-premise LLMs, AI agents and chatbots, AI integration into existing products, AI proof of concept and MVP and MCP servers. We also build the web and mobile apps around the model.

  • Sometimes. In the sales forecasting project statistical models, trained and validated on the client's data, solved the task, so no language model was needed. We assess this in discovery, before the build starts.

  • It depends on whether the data may leave your infrastructure, which we check in discovery. If it may not, a private model is the answer, as on PSONI, and it works best on a narrow task. Our page on on-premise LLM deployment covers the options.

  • On Centrum Komunikacji a transcription specialist corrects every speech-to-text draft, and on Enerace an editor confirms every summary before it reaches the reports. The glossary explains LLM evaluation.

  • Building the whole app first means learning late whether the model can do the job. A proof of concept answers one question, whether a model can do the task well enough on your data, and it gives you a decision and a chosen model.

  • It depends on the task. In our language-model projects behaviour comes from the choice of model, prompts and evaluation. In the sales forecasts we train and validate statistical models on the client's data. We assess whether a project needs fine-tuning in the free discovery, before the build.

  • Yes. The usual route is a separate AI service that the backend calls, so the feature can be measured, changed or switched off alone.

  • The model chooses tools by their names, descriptions and typed input schemas, and it never sees the code of a tool. On our server each tool calls an endpoint of the CMS API, so validation and permissions stay in one place.

  • Yes, when the setup allows it. In Generator ETR an administrator changes the model address, key, model name, temperature and maximum tokens in Django Admin without restarting the backend containers, so the model or the GPU server can be replaced without a new deployment.

  • Yes. We build text simplification, read-aloud, text recognition from photos and live speech-to-text with human correction, for readers with intellectual disabilities and for deaf and hard of hearing users.

  • Book the free discovery call through the form below, and we will reply within 48 hours on working days. An example opening workshop ran from 11:00 to 14:00 with four items: introducing the teams, integration and technical questions, scope and module priorities, and next steps with a schedule. We sign an NDA before the workshop and write a summary after it.

Developer with headphones coding at desktop monitor in an open office

AI software built for real users and strict data rules

Your message goes to

Filip Szamborski

Filip Szamborski

Co-founder & CEO

SO FAR WE HAVE WORKED WITH BRANDS LIKE:

Thank you for your message.

We read every message ourselves and get back to you within 48 hrs on business days.

Something urgent? hello@ordergroup.co

Let's build your AI product

Tell us about your idea. We'll get back to you within 48 hours on working days.

Fields marked with an asterisk (*) are required.

Order Group sp. z o.o. uses the information you provide only to reply to your enquiry and to keep a record of it (Art. 6(1)(b) and (f) GDPR). Details, including your rights, are in our Privacy Policy (opens in a new tab).

We reply within 48 hrs on business days - a person, not an autoresponder.

Using an AI assistant? It can send this inquiry for you or prepare a pre-filled form - instructions for it are in llms.txt.

Accessibility settings

Text size

100%