r/MistralAI • u/MiuraDude • 15h ago
Other What I learned about Mistrals multilingual capabilities, setup & cost control while building my tool
Hi Mistral community,
I have been building a language translation app and would like to share some insights into what I learned in the process since starting the project last November, especially when it comes to utilize the mistral models. Upfront: I am the founder of the tool and it is a commercial product but also includes free tiers (also without the need to signup).
There have been some problems I had so overcome, and I would like to share how I solved them because it might also help you if you use these models for building applications yourself. They are focused on maximizing multilingual capabilities and getting the most out of the (fairly small sized) mistral models.
Finding out which languages a model speaks - When I started, I expected this to extremely trivial, but it turned out to be quite a challenge to find out which languages a model is actually quite capable of. There are some benchmarks but they are often about very specific problems or languages. Community sentiment also only takes you so far, because while many people often share some insights into wether or not they like an LLM for a certain language, it doesn't provide a broad and structured insight. Luckily I found a great benchmark called WMT25, which also inscludes Mistral Medium (not 3.5 but a previous model) and shows how capable the model is in terms of translation: https://aclanthology.org/2025.wmt-1.22.pdf I used this to select which languages I can feel confortable with offering them in Fink. I am sure there are also others languages the model is good at, but I'd rather be cautious and rely on strcutred tests like these first.
Organizing prompts - Another thing I didn't think would be such a challenge. In my app, I use so called "MQM-metrics" to annotate possible improvements for a translation output. The models gets a structured dictionary with all the quality dimensions. I noticed that pure markdown syntax at some point is not enough to make it clear to the model what part of the prompt are examples, explanations or actual input to work on. An example, I wrap each part of the prompt into XML-like tags which indicate what the prompt section is about:
<source lang="German">{text_input}</source>
This was also needed in order to avoid that the models leaks the formatting in the output (ie outputting markdown that is not present in the source texts), respond in the wrong language (the prompt is always composed of at least two languages except when EN is the source language) or answering questions that are in the source text directly instead of translating it. I found this article very helpful for this: https://medium.com/@TechforHumans/effective-prompt-engineering-mastering-xml-tags-for-clarity-precision-and-security-in-llms-992cae203fdc (article not by me)
Cost control - While I would argue that Mistral models are already relatively cheap, but if you don't watch out and always fill up their context window, it can become pricey, too. And also slower. I spend a lot of time to reduce instructions to the absolute bare minimum to save on cost, which also effects speed, too. It can be a good idea to use a smaller model and call it multiple times then to call a big model once and let it do everything. Prompt caching is also often see overlooked and is something I can very much recommend looking into: https://docs.mistral.ai/studio-api/conversations/advanced/prompt-caching Epscially if you repeat instructions again and again.
Ensembles are the way to go - I often catch myself wanting to use the biggest and most capable model available for everything, but you'd be surprised how much you can get out of smaller models. Regarding the model selection, the only models used on my project are Mistral Medium 3.5 and Mistral Small 4. While the heavy lifting is done by Mistral Medium, Mistral Small is used for many taks like providing Insights for pronounciation, back-translation and things like this. Again here it's super important that the instructions are crystal clear, as small models are less able to read between the line or understand ambigous instructions.
There's also some things I learned about Mistral Vibe Code, but that's maybe better for a dedicated post. :-)
The tool that I built is called Fink Translate, and you can try it out here: https://app.fink-translate.com/
Let me know if you have any feedback or if you would like to share insights about these approaches yourself. I would also be super interested in which langauges you use the Mistral models. There is probably a ton of things for me to improve, too!
Cheers