跳到正文
DEV Community· oscar mulume·· 3 小時前AI 評分59

Mosala 可在本機將林加拉語或斯瓦希里語工作經歷整理成多語言履歷,並支援跨語言對話

Mosala: a CV and conversation assistant for Africa's languages, running on your own computer

AI 導讀

Oscar Mulume 開發 Mosala,讓用戶以林加拉語或斯瓦希里語描述工作經歷,生成法文、英文、斯瓦希里語、西班牙文或葡萄牙文履歷,亦可解讀招聘資訊及支援跨語言面對面對話。

正文

What I Built

In the DR Congo, where I live, many skilled people have never written a CV. Electricians, phone repairers, mechanics and solar installers learn their trade on the job. Most job offers are written in French or English, while millions of people live their working life in Lingala, Swahili, Kikongo or Tshiluba.

Mosala means "work" in Lingala. It lets someone describe their work the way they would tell a friend, in their own language, and does the slow, boring part for them:

  • Create my CV. You tell your story in Lingala or Swahili, by typing or by voice. Mosala writes a clean CV in French, English, Swahili, Spanish or Portuguese, and turns everyday trade words into the job titles recruiters search for: fundi wa simu becomes "Phone Repair Technician".
  • Understand a job offer. Paste an offer in French or English and Mosala explains it in simple words.
  • Match a CV and an offer. A keyword score, the missing keywords, three tuned bullet points and a draft cover letter.
  • Community messages. Health centres and NGOs write a notice once and get it in the community's languages. The Copy button stays locked until a speaker ticks "Checked by a speaker".
  • Conversation. Two people who share no language talk face to face, on one phone or on two phones in a room.

The language list covers all 54 African countries, with at least three languages for each, about 150 languages in total.

I was born in Goma and worked as a Red Cross volunteer in the DR Congo. I have met many people with real skills, mechanics, phone repairers, electricians, who could not apply for a job because they had no CV, or because the offer was written in a language they do not read well. Mosala is for them.

Demo

Demo video: link coming shortly.

Key moments: 1:36 a story in Lingala is sent, 2:00 the French CV appears, 3:35 a job offer is explained, 4:47 CV and offer are matched, 6:05 a community message is translated into five languages, 6:33 face-to-face conversation, 8:53 voice dictation.

Code

Repository: https://github.com/OscarMulume/nonchalant-cv

To run it: install Ollama, pull a small model such as qwen2.5:3b, then run python app.py and open http://localhost:8000. With python app.py --lan, phones on the same Wi-Fi can use it too.

How I Built It

The theme of this week is laziness, so I let the machine do the boring part and kept the important part for people.

Everything runs locally. Mosala uses an open-weight model through Ollama on my own laptop, with no GPU. There is no cloud account and no subscription, and the data never leaves the computer. In a country where data is expensive and the connection often drops, this matters.

Plain Python, no framework. The server, the CV logic and the tests use only the Python standard library. The web page is a single HTML file.

Guards against a model that invents things. Small models like to make CVs look better than the truth. Mosala checks their work:

  • A number the person never said is removed from the CV, and the person is told why.
  • A keyword is kept only if it really appears in the job offer.
  • If a translation loses a number, such as a date or a phone number, Mosala shows a warning.
  • A "Check the meaning" option translates the translation back.

Honest quality labels. Every language shows the quality to expect today: good, medium or experimental. Small open models understand Swahili far better than Lingala, Kikongo or Tshiluba. Saying so plainly is part of the product.

Tests. 42 unit tests replace the model with a fake one, so they run in under a second without Ollama.

Testing with the real model on my laptop taught me patience: each answer takes 20 to 40 seconds without a GPU. It also showed me the limits: when I asked for an explanation in Swahili, the small model sometimes answered in French instead. That is exactly why every language in Mosala carries an honest quality label.

Why Does Open Innovation Matter?

There is no good machine translation for most African languages. The people who speak these languages are the ones who know them best.

Open models and open code mean a teacher in Goma, a student in Dakar or an NGO in Bunia can run Mosala offline, fix a wrong word, add their own language and share it back. The most valuable contribution to Mosala is not code: it is a native speaker correcting a translation. That is why the language list lives in one plain file, africa.py, that anyone can edit.

Limits, said plainly

  • Voice dictation uses the browser's online service and only knows some languages.
  • Reading aloud depends on the voices installed on the device.
  • Translations into most African languages need a speaker to check them before anything important is shared.

What's next

  • Offline speech for African languages.
  • An Android version that runs a small model on the phone itself.
  • Corrections from speakers, country by country.

If you speak an African language, I would love your help. Open an issue with a better word, and Mosala gets better for everyone who speaks it.

來源:DEV Community · dev.to