RU

AI Sous-chef: raw potato salad, Qwen, and prompts outside the code

Published: 2026-11-10 · Author: AI Release · @ai_release1
AI Sous-chef: raw potato salad, Qwen, and prompts outside the code

⚡ The gist in 5 seconds

🔍 What happened

Six people got together on the geek-tik.tech platform, started on July 9, and by September 21 shipped an Android app and a Telegram bot. Both clients run on the same backend: Python, FastAPI, PostgreSQL, Redis, nginx, and Docker Compose. The AI Sous-chef repository is publicly available under GNU AGPL v3.0 — including the backend, prompts, configs, and review materials.

The scenario is simple. You photograph your groceries or type them in as a list, confirm the recognized items — and get dishes with step-by-step instructions. The tasks are split between two models: Qwen parses the message and returns a list of ingredients, then recipes are generated based on the product names. Both requests go to the Yandex AI API. The code calls it via the openai library, simply with a swapped address:

client = AsyncOpenAI(api_key=cls.YANDEX_API_KEY, base_url=cls.AI_API_URL, project=cls.YANDEX_FOLDER_ID)

AI_API_URL is set to https://ai.api.cloud.yandex.net/v1. The prompts live separately from the code: prompts/pin.json, prompts/recognize/v1/system.md, prompts/recognize/v1/user.md, prompts/recipes/v1/system.md, prompts/recipes/v1/user.md. The system file sets the general rules, while the user file carries the specific request.

There is also an unpleasant moment. After launch, a review came in: the app suggested a salad made of raw potato and eggplant. The recipe appeared on screen, but the instructions contained no step for cooking these ingredients. The user also couldn't fix the product list right in the flow — the team calls editing one of the nearest improvements.

🧠 Our take

Our assessment: what's interesting here isn't the cooking but two engineering decisions. The first is prompts as files with versions in the path, rather than strings hardcoded in Python. The second is the Yandex AI API's compatibility with OpenAI calls: the team didn't deploy models themselves or rewrite the client — they just changed the base_url. For a small team, that saves weeks.

We believe the main risk is one they flagged themselves. The model addresses use latest rather than a pinned version. The same code with the same prompt may respond differently after the provider updates the model — and reproducing yesterday's bug or yesterday's successful result becomes impossible.

Who wins? The user — a quick answer to the question "what should I cook." The cloud provider — a compatible endpoint draws in teams too lazy to deal with their own infrastructure. The loser is anyone expecting culinary reliability from recipe generation: raw potato in a salad is exactly about that.

⚠️ What we don't know

The team honestly writes that they didn't compare the costs of the "generate instructions for all dishes at once" scheme versus generating a detailed recipe on demand. There are no figures on how much that costs in tokens. There are also no measurements of product recognition accuracy. In the published excerpt, the part about the generation template — where the product list is inserted into both the system and the user prompt — is cut off; the full template text is worth checking in the repository itself. And this is a team's account of its own work, not an independent test.

💬 What to argue about

  • Keep latest in the model address for fresh features, or pin the version for reproducibility — which matters more for a service already in users' hands?
  • Generate instructions for all dishes at once, or fetch a detailed recipe only for the selected one: response speed versus the token bill.
  • Are prompts kept in files enough, or do they need the same discipline as code: tests, reviews, version rollbacks?

Prediction: within a quarter, AI Sous-chef will add editing of the recognized product list — the team itself named it the nearest improvement; check via commits in the repository.

Source: Habr

🤖 AI summary
#AI#Qwen#Yandex#промпты#open#LLM#нейросети#ChatGPT
← Previouskaeru gives Claude Code and Codex graph-based memory instead of CLAUDE.md

Source: habr.com · post in Telegram