LangChain on AI models run in Europe
Point ChatOpenAI and OpenAIEmbeddings at Evanesca's base URL and build LangChain apps and agents on models run in Europe. ChatOpenAI(base_url=…, api_key=…) from langchain-openai, or the OPENAI_API_BASE environment variable.
SoonOpening soon: what follows describes the service as it will work.
- Tool
LangChain · Agent framework (Python)
- API format
- OpenAI-compatible (Chat Completions)
- Base URL
https://evanesca.app/api/v1- Your prompts
- From your machine or server, straight to Evanesca
Setup
1. A chat model and embeddings
With a base URL that is not OpenAI's, LangChain stops counting tokens in streams: set stream_usage=True. Pin use_responses_api=False so calls stay on Chat Completions. For embeddings, send plain text rather than tiktoken tokens with check_embedding_ctx_length=False.
# pip install -U langchain-openai
import os
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
llm = ChatOpenAI(
model="gemma-4-26b",
base_url="https://evanesca.app/api/v1",
api_key=os.environ["EVANESCA_API_KEY"],
stream_usage=True,
use_responses_api=False,
)
print(llm.invoke("Hello from Europe").content)
embeddings = OpenAIEmbeddings(
model="bge-multilingual-gemma2",
base_url="https://evanesca.app/api/v1",
api_key=os.environ["EVANESCA_API_KEY"],
check_embedding_ctx_length=False,
)Where these settings come from
These settings come from LangChain's official documentation, read on 12 Oct 2026. This guide has not been run against Evanesca yet: it will be checked when the API opens.
Which model to pick
Evanesca's models from which a real tool call came back at their operator. This guide uses DeepSeek V4.1 Flash and Gemma 4 26B, picked from the catalogue for their properties. Prices per million tokens, input / output, margin and VAT included.
| Model ID | Operator and place | Context | Reasoning | Price |
|---|---|---|---|---|
mistral-large-4 | EU region of Mistral AI | 512k | — | €2.5133 / €7.7246 |
deepseek-v4.1-flash | Germany (AKI.IO) | 1M | Yes | €1.008 / €3.024 |
glm-5.3 | Germany (AKI.IO) | 512k | Yes | €3.024 / €9.24 |
qwen3.8-27b | Scaleway — Paris, France | 256k | Yes | €1.008 / €5.544 |
deepseek-v4-flash | Scaleway — Paris, France | 256k | Yes | €0.672 / €1.344 |
apertus-v1.5-70b | Switzerland (Infomaniak) | 100k | — | €1.2936 / €4.62 |
glm-5.2 | Scaleway — Paris, France | 256k | Yes | €3.024 / €9.24 |
qwen3.6-35b | Scaleway — Paris, France | 256k | Yes | €0.42 / €2.52 |
gemma-4-26b | Germany (AKI.IO) | 256k | — | €0.168 / €0.84 |
mistral-small-4-119b | EU region of Mistral AI | 256k | — | €0.2772 / €1.1088 |
qwen3.5-397b | Scaleway — Paris, France | 250k | Yes | €1.008 / €6.048 |
gpt-oss-120b | Scaleway — Paris, France | — | Yes | €0.252 / €1.008 |
qwen3-coder-30b | Scaleway — Paris, France | 256k | — | €0.336 / €1.344 |
qwen3-235b | Scaleway — Paris, France | 250k | — | €1.26 / €3.78 |
mistral-small-3.2 | Scaleway — Paris, France | — | — | €0.252 / €0.588 |
llama-3.3-70b | Scaleway — Paris, France | — | — | €1.512 / €1.512 |
pixtral-12b | Scaleway — Paris, France | 128k | — | €0.336 / €0.336 |
Reasoning tokens are billed as output. Where each model runs and what its operator keeps: Models and Europe.
Good to know
- ChatOpenAI keeps to OpenAI's official response format: fields such as reasoning_content are dropped.
- Tool calling and structured output go through ChatOpenAI and depend on the model you pick (table below).
Where your prompts go
The library runs in your process and calls the base URL itself. LangSmith tracing is opt-in; turned on, it would send traces to LangSmith.
On Evanesca's side, the model runs at a European operator, named with its place in the x-evanesca-operator and x-evanesca-location headers of every response, and Evanesca keeps no copy of prompts or answers — only the billing data of each call. What each operator keeps is set out in Models and Europe; the host of Evanesca's servers is named in the legal notice.
Sources
Official documentation, read on 12 Oct 2026:
Frequently asked questions
Does LangChain work with Evanesca?
Yes, through its base URL setting: ChatOpenAI(base_url=…, api_key=…) from langchain-openai, or the OPENAI_API_BASE environment variable. These settings come from LangChain's official documentation, read on 12 Oct 2026. This guide has not been run against Evanesca yet: it will be checked when the API opens.
Which Evanesca model should I use with LangChain?
One whose tool calling is measured. This guide uses DeepSeek V4.1 Flash and Gemma 4 26B; the 17 candidates are in this page's table, with their context window and price.
Do my prompts stay in Europe with LangChain?
The library runs in your process and calls the base URL itself. LangSmith tracing is opt-in; turned on, it would send traces to LangSmith. On Evanesca's side, the model runs at a European operator, named with its place in the x-evanesca-operator and x-evanesca-location headers of every response, and Evanesca keeps no copy of prompts or answers — only the billing data of each call. What each operator keeps is set out in Models and Europe; the host of Evanesca's servers is named in the legal notice.
One key, and the tool runs on models in Europe.
Prepaid credit, no subscription: the same key works with every guide.