Hydrogen-1.0
deep-principle/hydrogen-1.0 is Deep Principle's open-weight model, trained on top of GLM-5.3 with chemistry, materials science and life sciences data. Its training data includes laboratory records, failed experiments among them. Use it to plan experiments, reason about reactions and spectra, and interpret experimental results. On LLMTR it is called through the OpenAI-compatible /v1/chat/completions endpoint with your existing LLMTR API key.
| Model | Context | Inputs | Input / Cache read / Output ($/1M) |
|---|---|---|---|
deep-principle/hydrogen-1.0 |
1,000,000 | Text | 1.40 / 0.26 / 3.80 |
Image, audio and file inputs are not accepted; a request with an image returns 400. Send spectra or tabular data as text.
Pricing
Section titled “Pricing”Prices are in the table above, in dollars per 1 million tokens. Reasoning tokens are billed as output tokens. When you send the same prefix again, input tokens served from the cache are billed at the cache read price.
First request
Section titled “First request”curl "$LLMTR_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "deep-principle/hydrogen-1.0", "messages": [ { "role": "system", "content": "Answer like a synthetic chemist. State your assumptions." }, { "role": "user", "content": "Why does a Suzuki coupling need a base? How do I choose between K2CO3 and Cs2CO3?" } ], "max_tokens": 4096 }'The answer arrives in choices[0].message.content, and the model's reasoning separately in reasoning_content.
Reasoning
Section titled “Reasoning”Reasoning is always on for this model and cannot be turned off. Plain deep-principle/hydrogen-1.0 calls run at max, the deepest level. For shorter and cheaper answers, choose low or high with a model suffix or the reasoning_effort field; only low, high and max are accepted:
{ "model": "deep-principle/hydrogen-1.0:low", "messages": [{ "role": "user", "content": "Give the products of ethyl acetate hydrolysis under acidic and basic conditions." }], "max_tokens": 2048}medium, none, :fast and reasoning: false are refused with 400. When streaming, reasoning arrives as delta.reasoning_content and the answer as delta.content.
Structured output
Section titled “Structured output”If the result goes into your own system, pass a JSON Schema in response_format. The model returns a response that matches the schema:
from openai import OpenAI
client = OpenAI(base_url="https://llmtr.com/v1", api_key="llmtr-your_key")
schema = { "type": "object", "properties": { "reaction_type": {"type": "string"}, "reagents": {"type": "array", "items": {"type": "string"}}, "solvent": {"type": "string"}, "temperature_c": {"type": "number"}, "safety_notes": {"type": "array", "items": {"type": "string"}}, }, "required": ["reaction_type", "reagents", "solvent", "temperature_c", "safety_notes"], "additionalProperties": False,}
response = client.chat.completions.create( model="deep-principle/hydrogen-1.0:high", messages=[{"role": "user", "content": "Suggest starting conditions for the Suzuki coupling of 4-bromoanisole with phenylboronic acid."}], response_format={ "type": "json_schema", "json_schema": {"name": "reaction_plan", "strict": True, "schema": schema}, }, max_tokens=4096,)print(response.choices[0].message.content)If you do not need a schema, response_format: { "type": "json_object" } returns a valid JSON object.
Tool calling
Section titled “Tool calling”The model does not search databases; you provide compound properties, inventory or lab records through your own tools. Define a function in tools; the model asks for the data it needs with a tool call, and you send the result back with the tool role:
{ "model": "deep-principle/hydrogen-1.0", "messages": [{ "role": "user", "content": "Which of our solvents suits this reaction?" }], "tools": [{ "type": "function", "function": { "name": "list_solvent_inventory", "description": "Lists the solvents in the lab and their volumes", "parameters": { "type": "object", "properties": { "min_volume_ml": { "type": "number" } }, "required": [] } } }], "max_tokens": 2048}See Tool Calling for tool schemas and result messages.
When using it
Section titled “When using it”- Write your question with its scientific context: compound names, conditions, the data you have. Outside chemistry, materials science and life sciences, or with short prompts that give no context, the answer can come back empty or off-topic.
- If
contentcomes back empty, readreasoning_content; on short answers the text can be there. - Experimental conditions the model suggests are a draft. Before running them in the lab, an expert should check the safety data sheets and the results.
Sources for the model: Deep Principle's announcement and the Hugging Face model page.