* feat(docs): mirror every docs/ page in all 65 locales Extends the documentation mirrors from the 22-page core set (#13940) to every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors (6,208 new), language bars rewritten for the full locale list, state adopted so the blocking drift gate now covers all 152 pages. run-translation.mjs: an oversized block made only of table rows or list items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is cut at item boundaries and rejoined without a blank line — the single 16-40 KB request outlived the backend socket for verbose scripts. 48 older mirrors whose tables had lost rows were retranslated with --force. * docs(i18n): refresh mirrors for the sources the base changed since the branch cut Section-level retranslation of the 29 docs (and README.md) whose source or mirrors moved on release/v3.8.51 during the run, then state adoption; the drift gate is green again on the merged tree.
18 KiB
Playground Studio (Kiswahili)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Kipengele: Playground Studio — eneo la kazi lililounganishwa la kujaribu AI kwa
/dashboard/playground. Mipango:17-playground-studio-redesign.plan.md+_orchestration/master-plan-group-C.mdHali: Imetolewa katika v3.8.6
Muhtasari
Playground Studio inabadilisha /dashboard/playground kutoka kihariri rahisi kinachotumia Monaco kuwa
eneo kamili la kazi la majaribio. Inachukua nafasi ya page.tsx ya zamani kwa ganda la PlaygroundStudio
linaloonyesha vichupo vinne na kidirisha cha usanidi kinachoshirikiwa.
┌ Playground ──────────────────────────────────────────────────────────┐
│ [💬 Gumzo] [⚖ Linganisha] [{} API] [🔧 Unda] 142↑ 38↓ · $0.002 </>│
├──────────────────────────────────────────┬───────────────────────────┤
│ {maudhui ya kichupo kinachotumika} │ ─ Usanidi │
│ │ Endpoint [chat ∨] │
│ │ Model [gpt-5.4 ∨] │
│ │ Mfumo [textarea] │
│ │ Temp ▕▕▔▔ 0.7 │
│ │ Mipangilio [▾ pakia][hifadhi] │
│ │ [✨ Boresha prompt] │
└──────────────────────────────────────────┴───────────────────────────┘
Vichupo
Kichupo cha Gumzo
Kinaboresha ChatPlayground.tsx kuwa sehemu ya kazi ya utiririshaji wa mazungumzo yenye zamu nyingi:
- Uonyeshaji kamili wa markdown kupitia
MarkdownMessage.tsx(vitalu vya msimbo, majedwali, orodha, viungo). - Prompt ya mfumo inayotoka kwenye kidirisha cha Usanidi kinachoshirikiwa.
- Tokeni/gharama kwa kila ujumbe (tokeni za prompt + ukamilishaji).
- Tengeneza upya jibu la mwisho.
- Hutuma kwa
POST /v1/chat/completionskwa utiririshaji wa SSE.
Kichupo cha Kulinganisha
Kipengele kikuu kinachotofautisha proksi: endesha prompt 1 kwenye hadi modeli 4 kwa wakati mmoja.
- Hadi safu wima 4, kila moja ikitiririsha kivyake kutoka
/v1/chat/completions. - Kitufe cha
+ Ongeza modeli(njia ya mkato ya Cmd+K) cha kuongeza safu wima. Endesha zote ▶huanzisha mitiririko yote kwa wakati mmoja kupitiaPromise.all+AbortControllerkwa kila safu wima.- Kitufe cha jumla cha Ghairi zote husitisha kila mtiririko unaoendelea.
ProviderMetricsya kila safu wima huonyesha TTFT, TPS, tokeni na makadirio ya gharama katika muda halisi.- Vipimo vimewekewa lebo "makadirio ya upande wa mteja" (D12) — hupimwa kuanzia kipande cha kwanza cha SSE.
Kichupo cha API
Kinahifadhi 100% ya kihariri asili cha Monaco kwa watumiaji mahiri (D14):
- Endpoint 10: ukamilishaji wa gumzo, ukamilishaji, embeddings, picha, sauti, matamshi, unukuzi, udhibiti wa maudhui, upangaji upya na utafutaji.
- Upakiaji wa faili za aina nyingi za media.
- Utiririshaji wa SSE wenye matokeo ya muda halisi.
- Kimefungwa kama
ApiTab.tsx(hupakiwa inapohitajika,ssr: false).
Kichupo cha Kuunda
UI ya tools/function calling na matokeo yenye muundo:
ToolsBuilder.tsx— ongeza/hariri/ondoatools[]kwa kutumia kihariri cha schema ya JSON kwa kila zana. Huthibitisha parameters kupitiaToolDefinitionSchema(Zod).StructuredOutputEditor.tsx— washa/zima hali ya JSON + kihariri cha schema ya JSON. Huthibitisha response dhidi ya schema kupitiaStructuredOutputSchema(Zod).- Hutuma ombi kwa
/v1/chat/completionslikiwa natools[]na/auresponse_format.
Paneli ya Usanidi (Inayoshirikiwa)
StudioConfigPane.tsx — huonekana kila wakati, inaweza kukunjwa.
| Sehemu | Kijenzi | Maelezo |
|---|---|---|
| Endpoint | <select> |
chaguo 10 zinazolingana na PlaygroundEndpoint |
| Modeli | <input> |
maandishi huru, k.m. openai/gpt-4o |
| Kidokezo cha mfumo | <textarea> |
huingizwa kwenye vichupo vyote |
| Vigezo | ParamSliders |
temperature, max_tokens, top_p, presence/frequency penalty, seed, stop |
| Mipangilio awali | PresetPicker |
pakia/hifadhi vijipicha vya usanidi vilivyopewa majina (huhifadhiwa katika DB) |
| Boresha kidokezo | ImprovePromptButton |
hufungua modali ya onyo la mgao, huita /api/playground/improve-prompt |
Hali huinuliwa hadi PlaygroundStudio.tsx na kupitishwa kwa vichupo vyote. Kubadilisha vichupo
huhifadhi hali ya usanidi.
Upau wa Juu
StudioTopBar.tsx:
- Kibadilisha vichupo (role="tablist").
TokenCostCounter— onyesho la moja kwa moja la tokeni (↑/↓) na gharama iliyokadiriwa.- Kitufe cha kuhamisha msimbo (
</>) — hufunguaExportCodeModal.
Modali ya Kuhamisha Msimbo
ExportCodeModal.tsx hutumia codeExport.ts kutengeneza vijisehemu vya curl / Python / TypeScript
kutoka kwenye PlaygroundState ya sasa. Kishikilia nafasi cha ufunguo wa API huwa $OMNIROUTE_API_KEY kila wakati (D11).
Kiboresha Kidokezo
ImprovePromptButton.tsx → useImprovePrompt.ts → POST /api/playground/improve-prompt:
- Modali huonya kuwa "itatumia mgao".
- Baada ya kuthibitisha, hutuma
{ system, prompt, model, tone }kwa route. - Route huita
/v1/chat/completionskwa ndani kwa kutumiapromptImprover.META_SYSTEM_PROMPT. - Hurejesha
{ improvedSystem?, improvedPrompt?, tokensIn, tokensOut }. - UI husasisha kidokezo cha mfumo cha paneli ya Usanidi na kidokezo cha mtumiaji cha kichupo cha Gumzo.
Mipangilio Awali
PresetPicker.tsx → usePresets.ts → /api/playground/presets/*:
- Huhifadhiwa katika jedwali la SQLite la
playground_presets(uhamishaji084_playground_presets.sql). - Kila mpangilio awali huhifadhi:
name,endpoint,model,system,params_json,created_at. - CRUD: orodha ya
GET, uundaji waPOST,GET /:id,PUT /:id,DELETE /:id.
Vipimo vya Utiririshaji
useStreamMetrics.ts + streamMetrics.ts (kitendakazi kisicho na athari):
start()— hurekodi wakati ombi lilipoanza.onFirstChunk()— hurekodi TTFT.onChunk(n)— hukusanya idadi ya tokeni za ukamilishaji.finish(usage?)— hukokotoa vipimo vya mwisho:ttftMs,totalMs,tps,tokensIn,tokensOut,costUsd.- Bei kutoka kwenye jedwali tuli katika
src/lib/playground/types.ts(limewekewa lebo "imekadiriwa" — D13).
Route za Backend
| Mbinu | Njia | Kishughulikiaji |
|---|---|---|
POST |
/api/playground/improve-prompt |
Huthibitisha ImprovePromptRequestSchema kwa Zod; huita /v1/chat/completions kwa meta-prompt |
GET |
/api/playground/presets |
Hurejesha { presets: PlaygroundPresetListItem[] } |
POST |
/api/playground/presets |
Huunda mpangilio awali; huthibitisha PlaygroundPresetCreateSchema |
GET |
/api/playground/presets/:id |
Hurejesha mpangilio mmoja awali au 404 |
PUT |
/api/playground/presets/:id |
Usasishaji wa sehemu |
DELETE |
/api/playground/presets/:id |
204 |
Uthibitishaji: wa hiari (REQUIRE_API_KEY). Hitilafu kupitia buildErrorBody() (Kanuni Kali #12).
Faili Muhimu
| Njia | Madhumuni |
|---|---|
src/app/(dashboard)/dashboard/playground/PlaygroundStudio.tsx |
Kijenzi cha gamba, kipangaji wa vichupo |
src/app/(dashboard)/dashboard/playground/components/StudioTopBar.tsx |
Vichupo + kihesabu + kitufe cha kuhamisha |
src/app/(dashboard)/dashboard/playground/components/StudioConfigPane.tsx |
Paneli ya usanidi inayoshirikiwa |
src/app/(dashboard)/dashboard/playground/components/tabs/ChatTab.tsx |
Eneo la kazi la gumzo |
src/app/(dashboard)/dashboard/playground/components/tabs/CompareTab.tsx |
Ulinganishaji wa modeli nyingi |
src/app/(dashboard)/dashboard/playground/components/tabs/ApiTab.tsx |
Kihariri cha Monaco (kimehifadhiwa) |
src/app/(dashboard)/dashboard/playground/components/tabs/BuildTab.tsx |
Zana + matokeo yaliyopangwa |
src/app/(dashboard)/dashboard/playground/components/ExportCodeModal.tsx |
Dirisha ibukizi la kuhamisha msimbo |
src/app/(dashboard)/dashboard/playground/components/CompareColumn.tsx |
Safu moja ya ulinganishaji |
src/app/(dashboard)/dashboard/playground/components/ProviderMetrics.tsx |
Onyesho la TTFT/TPS |
src/app/(dashboard)/dashboard/playground/hooks/useStreamMetrics.ts |
Hooki ya vipimo ya upande wa mteja |
src/app/(dashboard)/dashboard/playground/hooks/usePresets.ts |
Hooki ya CRUD ya mipangilio iliyotayarishwa |
src/app/(dashboard)/dashboard/playground/hooks/useImprovePrompt.ts |
Hooki ya kuboresha kidokezo |
src/lib/playground/codeExport.ts |
Kizalishaji cha curl/Python/TS (kinashirikiwa na Zana za Utafutaji) |
src/lib/playground/promptImprover.ts |
Kiundaji cha kidokezo-meta |
src/lib/playground/streamMetrics.ts |
Ukokotoaji halisi wa vipimo |
src/lib/db/playgroundPresets.ts |
Moduli ya DB (CRUD) |
src/app/api/playground/improve-prompt/route.ts |
Njia ya REST ya kuboresha kidokezo |
src/app/api/playground/presets/route.ts |
Orodha ya mipangilio iliyotayarishwa + kuunda |
src/app/api/playground/presets/[id]/route.ts |
Kupata/kusasisha/kufuta mipangilio iliyotayarishwa |
src/lib/db/migrations/084_playground_presets.sql |
Uhamishaji wa DB |
Utatuzi wa Matatizo
| Dalili | Sababu | Suluhisho |
|---|---|---|
| Kihariri cha Monaco hakionekani kwenye kichupo cha API | SSR ilipakia Monaco | Thibitisha kuwa ApiTab inatumia dynamic(..., { ssr: false }) |
| Mitiririko ya ulinganishaji inaanza kwa mfuatano | Matumizi yasiyo sahihi ya Promise.all |
Uanzishaji wote wa mitiririko lazima utumwe katika mwito mmoja wa Promise.all |
Vipimo vinaonyesha TTFT ya null |
Kishughulikiaji cha sehemu ya kwanza hakijaunganishwa | Hakikisha useStreamMetrics.onFirstChunk() inaitwa ndani ya kitanzi cha kisomaji cha SSE |
| Mipangilio iliyowekwa awali haihifadhiwi | Uhamishaji wa DB haujaendeshwa | Endesha npm run db:migrate au anzisha upya seva (uhamishaji huendeshwa kiotomatiki wakati wa kuanza) |
| Uboreshaji wa kidokezo unarudisha 502 | Modeli haijawekwa katika Config | Mtumiaji lazima aweke jina la modeli katika kidirisha cha Config kabla ya kuboresha |
Msimbo wa kuhamisha unaonyesha MISSING_API_KEY |
Kishikilia nafasi hakijaingizwa | codeExport.ts hutumia daima API_KEY_PLACEHOLDER = "$OMNIROUTE_API_KEY" |
Marejeleo
- Mpango mkuu:
_tasks/features-v3.8.6/refactorpages/_orchestration/master-plan-group-C.md - Mpango wa kipengele:
_tasks/features-v3.8.6/refactorpages/17-playground-studio-redesign.plan.md - Uhamishaji wa msimbo:
src/lib/playground/codeExport.ts - Kiboreshaji cha kidokezo:
src/lib/playground/promptImprover.ts - Search Tools Studio:
docs/frameworks/SEARCH_TOOLS_STUDIO.md