AnythingLLM in Russia: chat with your documents on Claude, GPT and DeepSeek, no VPN or foreign card
AnythingLLM by Mintplex Labs is a free, open-source app that answers questions about your own files: PDFs, DOCX, spreadsheets and notes are parsed and stored on your computer (Desktop) or server (Docker). Answers can come from a built-in local model, or you can switch to a cloud one: with the Generic OpenAI provider and a RuAPI key, AnythingLLM gets Claude, GPT, Gemini, DeepSeek and Qwen. Model requests go to www.ruapi.ai without a VPN, and the balance is topped up in USDT.
from openai import OpenAI
client = OpenAI(
api_key="sk-...",
base_url="https://www.ruapi.ai/v1",
)
resp = client.chat.completions.create(
model="deepseek-flash",
messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)Use this example (cURL tab) to test your key in a terminal before you configure anything. In AnythingLLM, the same address https://www.ruapi.ai/v1 goes into the Base URL field of the Generic OpenAI provider, and the key into the API Key field.
Why AnythingLLM needs a cloud model
A local model needs a powerful computer.
For the built-in model, the AnythingLLM docs recommend at least 16 GB of RAM and an 8-core CPU, plus a GPU with 8–12 GB of VRAM on Windows; with a cloud model the requirements are much lower (docs.anythingllm.com, 2 Nov 2026). Claude, Gemini and GPT-5 cannot run on your own hardware at all, because their weights are not published. With RuAPI the answer is generated in the cloud while your document library stays in AnythingLLM.
You cannot get an OpenAI or Anthropic key from Russia.
Russia is not on the supported-country lists of either company (anthropic.com/supported-countries, developers.openai.com, 2 Nov 2026), and Russian bank cards are not accepted abroad. Signing up for RuAPI takes email, Google or Yandex, and you top up in USDT starting at 5 USDT.
The built-in Anthropic and OpenAI providers have no address field.
Their settings in AnythingLLM have a field for the key but none for the API address, so they cannot be pointed at another service from the settings (AnythingLLM 1.19.0 source code, 2 Nov 2026). That is why RuAPI is connected through the Generic OpenAI provider: one key opens models from every vendor, and the cost of each request shows up in the RuAPI console log.
How to connect RuAPI to AnythingLLM: 4 steps
The steps are the same for AnythingLLM Desktop and the Docker version. Menu names below are from the English interface; you can switch the UI language in the settings (Display Language), but the Generic OpenAI form stays in English.
Sign up for RuAPI and top up
Sign up at www.ruapi.ai using email, Google or Yandex; a phone number is not required. Top up in USDT from 5 USDT (TRC20, BEP20, TON, Polygon networks) or USDC; USDT can be bought for rubles via SBP following docs.ruapi.ai/en/buy-usdt. Foreign-issued cards are accepted too.
New accounts usually get $0.05 right away to try things out: it works with claude-haiku-5-5, deepseek-flash and gpt-6-luna, and the other models unlock after the first top-up.
Create a separate key for AnythingLLM
Console → API Keys → "Create API key". If your Docker instance is open to colleagues, give the key a spending limit: every user and workspace will spend the same RuAPI balance.


Pick the Generic OpenAI provider
- Click the wrench icon at the bottom of the sidebar (tooltip Open settings) → AI Providers → LLM. In the LLM Provider list, find Generic OpenAI.
- Base URL: https://www.ruapi.ai/v1 — with /v1. API Key: your sk-… key. Once the key is in, the Selected Model field turns into a list of RuAPI models; pick, for example, deepseek-flash. If you still see an empty text field instead of a list, the model list did not load: check the address and the key.
- Model context window is the ceiling AnythingLLM trims each request to. The field hint suggests 4096, but at that value retrieved document snippets and chat history get cut; enter something like 32000. Max Tokens limits the answer length and defaults to 1024, which is too little for long answers and reasoning models; set it to 8192. Click Save changes.
Upload documents to a workspace
- Create a workspace (New Workspace) and hover over it in the sidebar: the upload icon with the tooltip Upload documents to this workspace for RAG indexing opens the document manager.
- Drop your files onto Click to upload or drag and drop — PDF, DOCX, TXT, MD, CSV, XLSX, PPTX, EPUB, HTML and other formats work. Select them under My Documents, click Move to Workspace, then Save and Embed. The search vectors (embeddings) are computed by the selected embedder: by default the built-in AnythingLLM Embedder on your own computer, or text-embedding-3-small if Generic OpenAI with a RuAPI key is set as the embedder (see the embedder question below).
- Ask questions in that workspace chat: AnythingLLM finds the relevant snippets, sends them to the model together with your question, and shows under the answer which files they came from.
How RuAPI keys and the first request work: docs.ruapi.ai/en/quickstart
What to set in AnythingLLM
LLM → Generic OpenAI
Base URL: https://www.ruapi.ai/v1
API Key: sk-…
Model context window: 32000
Max Tokens: 8192
Embedder
Generic OpenAI: https://www.ruapi.ai/v1, text-embedding-3-small
or the built-in AnythingLLM Embedder (local)
Docker (.env)
LLM_PROVIDER=generic-openai
GENERIC_OPEN_AI_BASE_PATH=https://www.ruapi.ai/v1
GENERIC_OPEN_AI_API_KEY=sk-…
GENERIC_OPEN_AI_MODEL_PREF=deepseek-flash
GENERIC_OPEN_AI_MODEL_TOKEN_LIMIT=32000
GENERIC_OPEN_AI_MAX_TOKENS=8192
Payment
USDT / USDC from 5 USDT
foreign-issued cards
Model prices for AnythingLLM
Models that work well for answering from documents, in US dollars per 1M tokens, as shown on the pricing page. There is no monthly fee: the balance is charged only for the tokens your requests use.
| model | input $/M | output $/M |
|---|---|---|
| deepseek-flash | $0.17 cache read $0.0120 | $1.44 |
| qwen3.8-flash | $0.14 cache read $0.0288 | $0.49 |
| gpt-5.4-mini | $0.90 cache read $0.0900 | $5.40 |
| claude-haiku-5-5 | $0.12 cache read $0.0120 >100K: $0.60 | $0.60 >100K: $3.00 |
| gemini-3.5-flash | $1.80 cache read $0.18 | $10.80 |
| claude-sonnet-5-5 | $2.40 cache read $0.12 | $12.00 |
| gpt-5.4 | $3.00 cache read $0.30 >272K: $6.00 | $18.00 >272K: $27.00 |
In the table, input is fresh input tokens, “cache read” is tokens served from the cache, and output is the answer text. AnythingLLM adds the retrieved document snippets (up to 4 by default) and recent turns of the conversation (the Chat History setting, 20 question-and-answer pairs by default) to every question, so there are usually far more input tokens than words in the question itself. When the start of a request repeats, GPT and DeepSeek serve it from the cache at the lower rate on their own (docs.ruapi.ai/en/prompt-caching).
The grey “>100K” line is the vendor’s rate for long prompts: if a prompt goes over the threshold, the whole request is billed at that rate.
Built-in model or a cloud model via RuAPI
| AnythingLLM + RuAPI | AnythingLLM with the built-in model | |
|---|---|---|
| Where the answer is generated | In the cloud: the request goes through www.ruapi.ai to the model provider | On your computer (Lemonade and llama.cpp); in Docker it is enabled with ENABLE_BUILT_IN_LLM=true |
| What leaves your computer | The question, retrieved document snippets and the chat history; with the RuAPI embedder, also the document text for computing vectors | Nothing |
| Where documents and vectors live | With you: files, embeddings and the LanceDB database stay in AnythingLLM | Also with you |
| Hardware | An ordinary laptop is enough | 16 GB RAM and 8 cores or more, a GPU helps |
| Models | Claude, GPT, Gemini, DeepSeek, Qwen, GLM, Kimi | Open models in GGUF format |
Built-in model details are from docs.anythingllm.com and the v1.19.0 release notes on GitHub, checked 2 Nov 2026. The model can be chosen per workspace, so both options are easy to combine.
