use cases · Research

Research that shows its sources

Not one question and one answer: a loop that plans, searches, reads and writes, over your own corpus and the public literature, leaving a citation on every claim. The work a analyst does in two days, drafted in twenty minutes and checkable line by line.

how it works

How it is built.

Three steps, with the component that does the work in each one.

step 01

Plan the question

glm-5.2

A broad question becomes a list of specific ones. This is the step that decides whether the report is any good, and it is why a reasoning model earns its place here even though it costs more per token than the one that writes.

step 02

Search and read

qwen3-embedding + rerank

Retrieval over your own documents, and web search when the answer is outside them. Each source is read whole rather than skimmed from a snippet, which is where a flat rate changes what you can afford to do: reading fifty documents costs the same as reading five.

step 03

Write, with the trail attached

deepseek-v4-flash

The draft carries a reference on every claim, back to the passage it came from. A reader who does not trust a sentence can open its source, which is the only version of this that survives contact with an expert.

drop-in

Change one line. Keep your code.

Point the OpenAI SDK, or LangChain, LlamaIndex, your own pipeline, at Helmcode. Same calls, same shapes, private models on EU infrastructure.

read_the_docs
research.py
from openai import OpenAI

client = OpenAI(
    api_key="sk-...",
    base_url="https://api.helmcode.com/v1",  # one line changes
)

# 1 · plan the question into specific ones
plan = client.chat.completions.create(
    model="glm-5.2",
    messages=[{
        "role": "user",
        "content": "Break this into sub-questions: " + question,
    }],
)

# 2 · retrieve over your corpus, read each source whole
vectors = client.embeddings.create(
    model="qwen3-embedding",
    input=sources,
)

# 3 · write, with a reference on every claim
report = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[
        {"role": "system", "content": CITE_EVERY_CLAIM},
        *turns,
    ],
)

why here

Why on Helmcode.

What changes when you run it on open models, on infrastructure you control.

01

Your corpus is not the product

Prompts, retrieved passages and drafts are never stored and never train a model. Research is where you put your most sensitive material by definition, because you are asking about the thing you have not published yet.

02

The loop is where cost explodes

A research run is not one call, it is dozens: plan, search, read, re-read, write, check. Per-token pricing makes teams cap the loop early, which is exactly the wrong place to save. A flat rate removes the reason to cut it short.

03

Long context, used properly

Up to 1M tokens of context means a whole dossier goes in at once when retrieval alone would fragment the argument. Retrieval first, context window when the question spans the document rather than sitting in one paragraph.

industries

Where it is used.

The sectors where this case has traction, each with its own page and its own regulation.

all_industries →

In production at

// faq

Research, answered.

What research and legal teams ask before pointing a loop at their own sources.

How is this different from RAG?

RAG answers a question from your documents in one pass. Research plans a set of questions, searches repeatedly, reads sources whole, notices what is missing and goes back for it, then writes something longer than an answer. Same retrieval underneath, a different amount of work on top.

Can it search the web as well as our own documents?

Yes. The platform exposes a web search endpoint, so a run can mix your internal corpus with public sources and cite both. Which sources are allowed is your decision, and for the strictest work you can turn the web off and keep the loop entirely inside your own material.

Can we trust the citations?

A citation points at a passage that was actually retrieved, so it can be opened and read. That makes a wrong claim findable, which is the useful property. It does not make the model right: the reviewer is still the person, and a research report is a draft for an expert rather than a replacement for one.

Does the research data leave our network?

Only if you allow it. The default is EU-only inference with zero logs, and the on-premise deployment runs the same models and the same API inside your own datacenter, which is the usual choice for R&D and for privileged material.

// get started

START BURNING TOKENS

Skip the AI infra work. Deploy your first private inference endpoint today.

Flat rate. EU data. OpenAI API compatible.