Research and universities
The most common research setup compares several models on the same question set and uses an embedding model for literature search and clustering. One Tutujin API key calls models from different vendors, billed by actual usage. For two models on 2,000 questions each plus 5,000 abstracts indexed per month, at live prices in each model’s cheapest group, model costs are about ¥236 a month.
Prices updated Nov 12, 2026, 8:17 PM|
01
The business problem
Model evaluation, social-science text analysis and interdisciplinary work often compare several models. Signing up with each vendor, arranging different payment methods and writing several API integrations eats into research time before anything runs.
Experiments also have to be reproducible: papers need the exact model, parameters and call dates, and grant accounting needs clear usage records and invoices.
One compatible API removes most of the duplicated work: the same code compares models by changing the model parameter, and every call’s tokens and cost are listed in the console.
02
Recommended models
Strong baseline (control)
gpt-5.5OpenAIinput ¥10 / output ¥80 per 1M tokens· Standard groupThe strong baseline of the experiment, also useful for drafting reference answers. Its price is higher, so fix the question count before running the full evaluation.
Chinese and open-weight model families
deepseek-v4-proDeepSeekinput ¥16.8 / output ¥33.6 per 1M tokens· China Models groupCompared with the baseline on the same questions to see differences in Chinese-language tasks, cost and speed, which is a research question in its own right.
Literature search and clustering (Embeddings)
text-embedding-3-largeOpenAIinput ¥0.26 / output ¥0.26 per 1M tokens· Standard groupEmbeds abstracts and interview transcripts for similar-paper search, topic clustering and deduplication.
Recommended models are picked from the live catalog; prices are each model's cheapest group, updated Nov 12, 2026, 8:17 PM. Click a model to see every group's price.
03
Reference architecture
- 1
Prepare the question set
Number every question or text, freeze the prompt template and keep both under version control with your code.
- 2
One client for all models
Loop over models with the same OpenAI-compatible client, changing only the model parameter and keeping everything else identical.
- 3
Log everything
For every call, record the requested model, the model named in the response, parameters, time, latency, usage and raw output in JSONL for reproduction and analysis.
- 4
Embed the literature
Index abstracts and long texts with an embedding model for similarity search, clustering and deduplication, and name the embedding model in your paper.
- 5
Reconcile spending
Export call records by date from Usage in the console and match them with your experiment logs as evidence of grant spending.
04
Cost estimate
Assumptions: two models each evaluated on 2,000 questions a month at about 1,000 input and 800 output tokens per question; plus 5,000 paper abstracts embedded at about 400 tokens each.
| Item | Model | Usage assumed | Cost |
|---|---|---|---|
| Baseline model evaluation | gpt-5.5 | 2,000 × (1,000 input + 800 output tokens) | ¥148 |
| Comparison model evaluation | deepseek-v4-pro | 2,000 × (1,000 input + 800 output tokens) | ¥87.36 |
| Abstract embedding | text-embedding-3-large | 5,000 × 400 input tokens | ¥0.52 |
| Total (per month) | ¥235.88 | ||
Calculated from live prices in each model's cheapest group, updated Nov 12, 2026, 8:17 PM.
Model usage only. Reasoning tokens count as output, so real output can be well above 800 tokens, and repeated runs multiply the cost. Run 50 questions first and extrapolate the budget from the real usage.
05
Sample code
Run the same questions through several models and write model names, parameters, usage, latency and raw output to JSONL as a reproducible record.
import json
import os
import time
from openai import OpenAI
client = OpenAI(base_url="https://open.tutujin.com/v1", api_key=os.environ["TUTUJIN_API_KEY"])
MODELS = ["gpt-5.5", "deepseek-v4-pro"]
# Record exactly what you send. Reasoning models may reject temperature or max_tokens,
# so add sampling parameters per model only where they are supported.
PARAMS = {"seed": 42}
def run(questions, out_path="results.jsonl"):
with open(out_path, "a", encoding="utf-8") as f:
for model in MODELS:
for q in questions:
started = time.time()
resp = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": q["prompt"]}],
**PARAMS,
)
f.write(json.dumps({
"question_id": q["id"],
"model": model,
"returned_model": resp.model,
"params": PARAMS,
"answer": resp.choices[0].message.content,
"usage": resp.usage.model_dump() if resp.usage else None,
"latency_s": round(time.time() - started, 2),
"called_at": time.strftime("%Y-%m-%dT%H:%M:%S%z"),
}, ensure_ascii=False) + "\n")
run([{"id": "q1", "prompt": "State the main finding of the abstract below in one sentence: ..."}])
# Literature search: embed abstracts with text-embedding-3-large and store the vectors with their DOIs.FAQ
What budget does a research group need per month?
For two models on 2,000 questions each plus 5,000 abstracts embedded, the cheapest groups come to about ¥236 a month. Question count, output length and whether you use reasoning models matter most.
Can I get an invoice for reimbursement?
We can issue overseas invoices: add our WeChat support JsnonoChat and send your order number. Chinese domestic invoices can be discussed case by case.
Are the results reproducible?
LLM output is random to some degree; the seed parameter only brings runs closer together and does not guarantee identical results. Log model names, parameters, call times and raw outputs, run each question several times and report the distribution rather than a single run.
Do model updates change results?
Yes. The version behind a model name can change, while model names with a date suffix usually point to a fixed snapshot. Record the full model name and the date of each call.
Can several people in a group share one account?
Yes. Create an API key per member or per project with its own spending limit and expiry; usage is listed per key, which makes splitting costs between grants easy.