Mistral, mon nouvel amour

Anyone who knows me mildly well is aware that I’m a Francophile. I lived in France for almost four years, learned to speak the language fluently, read the unabridged version of Les Miserables in version originale, still have many friends there and try to visit as often as I can. Since living in Paris in the ’90s, I’ve dreamed of one day living there again. That’s still a plan.

Mistral black cat

Mistral rentre dans la maison

That being said, I added Mistral to the backend of MyMemoChat, to power the chat (mistral-small-latest) as well as the embeddings (1024-dimensional mistral-embed), not because it’s a frontier lab based out of Paris, but… really it’s mostly because of that.

Actually, I also want to try it out. I could simply use Le Chat but plugging Mistral into the backend of MyMemoChat will enable me to see how a personalization layer will behave on top of the European model.

Implementation was fastoche

I previously used Codex through the command line but for this assignment I used Codex in the desktop app. Having forgotten my workflow from a few months ago, ChatGPT quickly helped me to remember the build and deploy process. After creating a Mistral API key and entering a few prompts, I had it working locally. As soon as the pull request is approved by my collaborator, it’ll be live. The whole thing took me about an hour, although I spent a decent amount of time just poking around the docs.

Compare and contrast

OpenAI’s gpt-4o-mini is still on the backend. I’ll eventually find a way to switch models live, but for now I can change to it by updating the config file or through a variable on Railway. So once the evals are fully up and running it’ll be interesting to see how the models compare. While there are countless models to choose from, I’ll start with these two.

Chat models

Specifications and standard API prices checked on November 9, 2026. Prices exclude caching, batch discounts and taxes. The Mistral column describes Small 4. mistral-small-latest is a moving alias, so reproducible evaluations should record the dated model version.

I was surprised to find that the two chat models have identical standard API prices. That’s a coincidence but makes the comparison especially interesting. At the same price per token, which model makes better use of the personalization layer? (Actual costs may still differ, however, because the models can tokenize text differently and produce different-length replies.)

Detail Mistral Small 4 OpenAI GPT-4o mini
Model ID mistral-small-latest gpt-4o-mini
Dated model ID mistral-small-2603 gpt-4o-mini-2024-07-18
Released March 16, 2026 July 18, 2024
Parameters 119 billion total (mixture of experts) Not publicly disclosed
Context window 256,000 tokens 128,000 tokens
Input / output Text and images / text Text and images / text
Input price per million tokens $0.15 $0.15
Output price per million tokens $0.60 $0.60
Model weights Available under Apache 2.0 Not publicly released

Sources: Mistral Small 4 model card, Mistral release announcement, and OpenAI GPT-4o mini model documentation. The OpenAI documentation currently labels GPT-4o mini deprecated; availability should be checked before future evaluations. Parameter counts alone do not establish which model will work better for personalization.

Embedding models

These models turn memory text into numerical vectors for similarity calculations and clustering. They do not generate chat replies. MyMemoChat selects the embedding model automatically from the chat model’s provider.

Detail Mistral OpenAI
Model ID mistral-embed text-embedding-3-small
Released December 11, 2023 January 25, 2024
Default vector dimensions 1,024 1,536
Dimensions used in MyMemoChat 1,024 256
Input price per million tokens $0.10 $0.02
Parameters Not publicly disclosed in the cited documentation Not publicly disclosed in the cited documentation

Sources: Mistral Embed model card, Mistral text embeddings guide, OpenAI embedding model documentation, OpenAI embeddings guide, and OpenAI release announcement.

Mistral embeddings currently cost five times as much per input token. MyMemoChat stores four times as many vector components with Mistral as with its reduced OpenAI setting, although that does not translate directly into four times the SQLite storage. More dimensions do not automatically mean better personalization. The vectors come from different embedding spaces and cannot be compared directly; MyMemoChat excludes incompatible vectors from clustering when switching providers. Existing memory text remains until cleared or expired.

Leave a Comment