Δυνατότητες AI
Το επίπεδο AI του cMind είναι ανεξάρτητο από τον πάροχο. Κάθε δυνατότητα επικοινωνεί με έναν μοναδικό
σύνδεσμο ανεξάρτητο από τον πάροχο (IAiClient.CompleteAsync). ένας πελάτης δρομολόγησης επιλύει
τις ενεργές διαπιστευτήρια του παρόχου και στέλνει στον ταιριαστό προσαρμογέα. Επιλέγετε έναν πάροχο + μοντέλο + τελικό σημείο (και, εάν ο πάροχος το χρειάζεται,
ένα κλειδί). κάθε υπάρχουσα δυνατότητα λειτουργεί χωρίς αλλαγές με την ίδια πύλη, κρυπτογράφηση, ανθεκτικότητα και
υποβάθμιση.
Συμπεριλαμβάνονται οι μπαταρίες: ένα ενσωματωμένο τοπικό LLM που παραδίδεται με την εφαρμογή και είναι ενεργοποιημένο από προεπιλογή (Microsoft.ML.OnnxRuntimeGenAI, π.χ. Phi-3-mini) — έτσι κάθε ανάπτυξη έχει λειτουργικό AI χωρίς API κλειδί και χωρίς εξωτερική υπηρεσία. Μια ανάπτυξη white-label μπορεί να το καταργήσει και να περιορίσει ποιοι πάροχοι επιτρέπονται στους χρήστες Εκτός από το ενσωματωμένο, συνδέστε οποιονδήποτε εξωτερικό πάροχο.
Υποστηριζόμενοι πάροχοι:
- Ενσωματωμένο τοπικό AI (
BuiltInOnnx) — μοντέλο ONNX GenAI εντός διεργασίας, χωρίς κλειδί, παραδίδεται + ενεργοποιημένο από προεπιλογή. - Anthropic (Claude — Messages API)
- OpenAI και Azure OpenAI (Chat Completions)
- Google Gemini (
generateContent) - Οποιοδήποτε συμβατό με OpenAI τελικό σημείο, συμπεριλαμβανομένων τοπικών μοντέλων (Ollama, LM Studio, vLLM,
llama.cpp
server, LocalAI) και συμβατών με OpenAI cloud (Kimi / Moonshot στηhttps://api.moonshot.ai/v1/, OpenRouter, Groq, Together, Mistral, DeepSeek) — όλα μέσω του ενός προσαρμογέα συμβατού με OpenAI, διαφέροντας μόνο κατά βάση URL + μοντέλο + κλειδί. Το διάλογο Προσθήκη παρόχου προσφέρει προκαθορισμένες ρυθμίσεις (Kimi, OpenAI, OpenRouter, Groq, DeepSeek, Mistral, Ollama, LM Studio) που συμπληρώνουν τη βάση URL + ένα δείγμα μοντέλο.
Ακριβώς ένας πάροχος είναι ενεργός κάθε στιγμή. Τα διαπιστευτήρια αποθηκεύονται κρυπτογραφημένα
(AiProviderCredential aggregate + IAiProviderStore + ISecretProtector, EncryptionPurposes.AiApiKey).
ένα τοπικό τελικό σημείο δεν χρειάζεται κλειδί. Χωρίς καμία ενεργό παροχέα, κάθε δυνατότητα επιστρέφει το αποτέλεσμα απενεργοποίησης και το υπόλοιπο
την εφαρμογή τρέχει χωρίς αλλαγές (δεν χρειάζεται κλειδί για δημιουργία, δοκιμή ή εκτέλεση της πλατφόρμας).
Back-compat: τα διαπιστευτήρια μιας υπάρχουσας ανάπτυξης App:Ai:ApiKey (ή τα παλιά κρυπτογραφημένα ai.api_key
ρύθμιση) τιμώνται αυτόματα ως προεπιλεγμένος ενεργός Anthropic παροχέας — χωρίς ενέργεια.
AI μη διαμορφωμένο → Οι σελίδες AI συσκοτίζουν τις ενέργειες και εμφανίζουν ένα πανό και ένα μοναδικό
προτροπή για προσθήκη παρόχου στις Ρυθμίσεις → AI (AiFeatureNotice). Κατάσταση στο GET /api/ai/status ({ enabled, kind, model }).
οι πάροχοι διαχειρίζονται (μόνο ιδιοκτήτης) μέσω GET/PUT /api/ai/providers, POST /api/ai/providers/{id}/activate,
DELETE /api/ai/providers/{id}, και ένα POST /api/ai/providers/test ping σύνδεσης.
Προεπιλογή ανάπτυξης έναντι παρόχου του χρήστη
Τα διαπιστευτήρια AI έχουν δύο εμβέλειες:
- Προεπιλογή ανάπτυξης (διαχειριζόμενη από τον ιδιοκτήτη). Ο ιδιοκτήτης διαμορφώνει έναν πάροχο (ή τον παραδίδει μέσω
App:Ai:Providers[]/ τα παλιάApp:Ai:ApiKey). Γίνεται η κοινή προεπιλογή για κάθε χρήστη — έτσι ένας κομίστας ή πάροχος φιλοξενίας μπορεί να χρηματοδοτήσει AI για όλους τους χρήστες του με χωρίς ρύθμιση ανά χρήστη και όχι όριο ανά χρήστη. Διαχειρίζονται μέσω των διαδρομών μόνο του ιδιοκτήτη/api/ai/providersπαραπάνω. - Ο δικός του πάροχος ενός χρήστη (αυτοεξυπηρέτηση). Κάθε συνδεδεμένος χρήστης μπορεί να προσθέσει τον δικό του πάροχο στο πλαίσιο
GET/PUT /api/ai/my-providers,POST /api/ai/my-providers/{id}/activate,DELETE /api/ai/my-providers/{id}. Όταν υπάρχει, η δικός τους ενεργό παροχέας αντικαθιστά την προεπιλογή ανάπτυξης για τις δικές τους δυνατότητες AI. η κατάργησή του επιστρέφει στο προεπιλεγμένο.
Σειρά ανάλυσης (σε AiProviderStore, ανά χρήστη αιτήματος): το ενεργό διαπιστευτήριο του χρήστη → το
προεπιλεγμένο ανάπτυξης → το κλειδί παλιάς ρύθμισης → κανένα (AI απενεργοποιημένο). Ακριβώς ένα διαπιστευτήριο είναι ενεργό
ανά εμβέλεια (ένα μερικό μοναδικό ευρετήριο ανά OwnerUserId), και κάθε εμβέλεια επιλύεται ανεξάρτητα, επομένως α
χρήστης που ενεργοποιεί το δικό του κλειδί δεν διαταράσσει ποτέ την κοινή προεπιλογή. Πλαίσια παρασκηνίου/μη-Web (χωρίς χρήστη αιτήματος) πάντα
επιλύεται η προεπιλεγμένη ανάπτυξη.
Πίνακας δυνατοτήτων παρόχου
Οι δυνατότητες προεπιλέγονται ανά πάροχο και μπορούν να αντικατασταθούν από τον ιδιοκτήτη. Όταν μια δυνατότητα είναι απενεργοποιημένη η δυνατότητα υποβαθμίζεται, ποτέ δεν ρίχνει: η αναζήτηση στον Ιστό σιωπηλά πέφτει. η όραση επιστρέφει ένα ληφθέν αποτύχωμα μη υποστήριξης ικανότητας.
| Παροχέας | Είδος | Προεπιλεγμένη βάση URL | Απαιτούμενο κλειδί | Αναζήτηση ιστού | Όραση | Σημειώσεις |
|---|---|---|---|---|---|---|
| Ενσωματωμένο τοπικό AI | BuiltInOnnx | n/a (εντός διεργασίας) | όχι | ✖ | ✖ | παραδίδεται μοντέλο ONNX GenAI, ενεργοποιημένο από προεπιλογή |
| Anthropic | Anthropic | https://api.anthropic.com/ | ναι | ✅ | ✅ | Messages API, web_search εργαλείο |
| OpenAI | OpenAiCompatible | https://api.openai.com/v1/ | ναι | προαίρεση | προαίρεση | Chat Completions |
| Azure OpenAI | AzureOpenAi | https://<resource>.openai.azure.com/ | ναι | ✅ | ✅ | διαδρομή ανάπτυξης + api-version |
| Google Gemini | Gemini | https://generativelanguage.googleapis.com/ | ναι | ✅ | ✅ | generateContent, google_search grounding |
| Ollama (τοπικό) | OpenAiCompatible | http://localhost:11434/v1/ | όχι | ✖ | εξαρτώμενο από μοντέλο | μέσω προσαρμογέα συμβατού με OpenAI |
| LM Studio (τοπικό) | OpenAiCompatible | http://localhost:1234/v1/ | όχι | εξαρτώμενο από μοντέλο | εξαρτώμενο από μοντέλο | μέσω προσαρμογέα συμβατού με OpenAI |
| vLLM / llama.cpp / LocalAI | OpenAiCompatible | η URL σας | όχι | ✖ | εξαρτώμενο από μοντέλο | μέσω προσαρμογέα συμβατού με OpenAI |
| OpenRouter / Groq / Together / Mistral / DeepSeek | OpenAiCompatible | URL παρόχου | ναι | ✖ | εξαρτώμενο από μοντέλο | μέσω προσαρμογέα συμβατού με OpenAI |
Πλήρεις ανά-πάροχο οδηγούς ρύθμισης (κλειδιά, URLs, κωδικοί μοντέλων, βήματα UI): δείτε AI παρόχοι — κατάλογος ρύθμισης.
Ενσωματωμένο τοπικό AI (παραδίδεται, ενεργοποιημένο από προεπιλογή)
Το cMind παραδίδει ένα πραγματικό τοπικό LLM που τρέχει εντός διεργασίας μέσω Microsoft.ML.OnnxRuntimeGenAI (ένα συμπαγές μοντέλο οδηγιών όπως Phi-3-mini). Δεν χρειάζεται κλειδί API και καμία εξωτερική υπηρεσία, και κατά την πρώτη εκκίνηση — όταν κανένας πάροχος δεν είναι διαμορφωμένο και η πύλη white-label το επιτρέπει — σπαρθεί και ενεργοποιηθεί αυτόματα, έτσι κάθε ανάπτυξη έχει λειτουργικό AI από το κουτί.
- Ο κατάλογος μοντέλων (
genai_config.json+ tokenizer + βάρη) διαμορφώνεται απόApp:Ai:BuiltIn:ModelPath(προεπιλογήmodels/onnx, σχετικά με τον κατάλογο βάσης της εφαρμογής). Όταν τα αρχεία μοντέλου λείπουν ο παροχέας υποβαθμίζεται σε ένα ληφθέν αποτύχωμα με νύχια εγκατάστασης — ποτέ δεν ρίχνει, και το υπόλοιπο της εφαρμογής δεν επηρεάζεται. - Εξουσιοδοτεί κάθε δυνατότητα AI κειμένου. Ως συμπαγές μοντέλο, είναι μόνο κείμενο (χωρίς αναζήτηση στον Ιστό από την πλευρά του διακομιστή ή όραση) και δημιουργία σειριοποιημένη (μια παρουσία μοντέλου, επαναχρησιμοποιημένη μετά από σχόλια φόρτωσης).
- Πολλά ενσωματωμένα μοντέλα μπορούν να συνυπάρχουν. Κάθε λήψη μοντέλου ζει κάτω από το
ModelPath/<key>. ένας διευθυντής κατάλογος (Phi-3-mini προεπιλογή, συν Phi-3-mini-128k) μπορεί να κατέβει και να αλλάξει από τις Ρυθμίσεις → AI. Η επιλογή ενός ενσωματωμένου υπομοντέλου το φορτώνει εντός διεργασίας. Κτήστε/δέστε το μοντέλο: δείτε AI παρόχοι → ενσωματωμένο.
Έλεγχοι white-label
Μια ανάπτυξη white-label περιορίζει το AI μέσω App:Branding (επιβάλλεται από την πλευρά του διακομιστή σε κάθε ανέβασμα παρόχου):
AllowBuiltInAi(προεπιλογήtrue) — ορίστεfalseγια κατάργηση του ενσωματωμένου μοντέλου εντελώς.AllowLocalProviders(προεπιλογήtrue) — ορίστεfalseγια αποτροπή τοπικών/αυτο-φιλοξενούμενων τελικών σημείων (loopback / ιδιωτικό συμβατό με OpenAI, π.χ. Ollama/LM Studio/vLLM).AllowedAiProviderKinds(προεπιλογή κενή = όλα) — απαριθμήστε μόνο τα είδη που εγκρίνει η ανάπτυξη (π.χ.["Anthropic","OpenAiCompatible"]) για αποκλεισμό ποιοι πάροχοι επιτρέπεται στους χρήστες να προσθέσουν.AllowAiModelManagement(προεπιλογήtrue) — ορίστεfalseγια απόκρυψη περιήγησης μοντέλων, του per-page model selector, και δέσμευσης ανά-χαρακτηριστικού μοντέλου. Όλα είναι ιδιοκτήτης-tune στο runtime από τις Ρυθμίσεις → Ανάπτυξη (ανεσταλμένα ζωντανά στοIOptionsMonitor) και καταλογοποιημένα στοWhiteLabelCatalog.
Επέκταση: μελλοντικά ενσωματωμένα μοντέλα
Το επίπεδο AI είναι βασισμένο σε προσαρμογέα και χτισμένο για να μεγαλώσει. Κάθε παροχέας είναι IAiProvider επιλεγμένο κατά
AiProviderKind. το χαρακτηριστικό-κοντινό σύνδεσμο (IAiClient/AiFeatureService) δεν αλλάζει ποτέ. Προσθήκη α νέο
ενσωματωμένο χρόνο εκτέλεσης μοντέλου αργότερα (άλλο μοντέλο ONNX, διαφορετικό κινητήρα εντός διεργασίας, GGUF/llama.cpp
εντός proc, κ.λπ.) είναι μια τοπική αλλαγή: προσθέστε AiProviderKind, υλοποιήστε ένα IAiProvider προσαρμογέας,
εγγραφείτε σε αυτό, και (προαιρετικά) σύρμα προεπιλεγμένο σπάριμο + επιλογή διαλόγου — χωρίς δυνατότητα, τελικό σημείο ή MCP εργαλείο
αλλαγές. Ο ενσωματωμένος παροχέας ONNX είναι η αναφορά υλοποίηση αυτού του μοτίβου.
Δυνατότητες
- Δημιουργία cBot — ένας πρόγραμμα-εργαστήριο με βάση το έργο στο
/ai/build: δημιουργήστε ένα νέο cBot (μοναδικό όνομα + γλώσσα) ή βελτιώστε ένα υπάρχον που έχει πηγή, στη συνέχεια συνομιλήστε με ένα μοντέλο στο/ai/build/{projectId}για να γράψετε και να βελτιώσετε τον κώδικά του. Κάθε προτροπή και απάντηση μοντέλου αποθηκεύεται με χρονικές σημάνσεις και επιβιώνει της πλοήγησης/φόρτωσης. η πηγή του μοντέλου εφαρμόζεται στο έργο σε κάθε σειρά. Δημιουργήστε και Εκτελέστε το cBot από την ίδια σελίδα (ή ανοίξτε το στο πλήρες πρόγραμμα επεξεργασίας). Κάθε έργο εμφανίζεται στη λίστα με τον τελευταίο χρόνο αλλαγής και τα control προβολής/διαγραφής. - Per-page model selection — κάθε σελίδα δυνατότητας AI και διάλογος εμφανίζει έναν model selector που αναφέρει τα μοντέλα που μπορείτε να χρησιμοποιήσετε (οι δικοί σας πάροχοι + οι προεπιλογές ανάπτυξης). Προεπιλέγει τη δέσμευση που αποθηκεύθηκε της δυνατότητας εάν οριστεί, διαφορετικά το προεπιλεγμένο μοντέλο, και το μοντέλο που επιλέγετε ισχύει για αυτή τη μία ενέργεια (αποστέλλεται ως
?modelId=και επιβάλλεται από τονRoutingAiClientγια αυτή την κλήση). Κρυμμένο όταν η ανάπτυξη απενεργοποιεί τη διαχείριση μοντέλων. - Browse & select models, per feature — περιηγηθείτε τα μοντέλα που ένα τελικό σημείο παρόχου διαφημίζει (
GET /v1/modelsσε LM Studio / Ollama / vLLM / llama.cpp, ή ο ενσωματωμένος κατάλογος), αντί να πληκτρολογείτε ένα αναγνωριστικό με το χέρι, και δέστε κάθε δυνατότητα AI σε ένα διαφορετικό μοντέλο έτσι ώστε πολλά μοντέλα να εξυπηρετούν διαφορετικά χαρακτηριστικά ταυτόχρονα (ένα μη δεδεμένο χαρακτηριστικό επιστρέφει στο στον ενεργό παροχέα του πεδίου). - Βελτιστοποίηση παραμέτρων — κλειστός βρόχος: Το AI προτείνει σύνολα παραμέτρων, κάθε ένα παραμένει + δοκιμάζεται σε κόμβους (
optimize-run/optimize-params). - Αυτόνομη δυνατότητα χαρτοφυλακίου — προτάσεις κατευθυνόμενες από εντολή με πλήρο αρχείο απόφασης (
AgentMandate→AgentProposal). - Φρουρός κινδύνου που ενεργεί —
AiRiskGuardυπηρεσία παρασκηνίου αξιολογεί τρέχοντες bot, μπορεί αυτόματη στάση σε κρίσιμο κίνδυνο (προαιρετικό). - Φρουρός έκθεσης prop-firm — τραβήγματα/όρια έκθεσης με αυτό-χτυπό.
- Ειδοποιήσεις αγοράς — κινητήρας
AlertRuleμε συναίσθημα AI (αναζήτηση ιστού συζευγμένο όπου υποστηρίζεται ο παροχέας). - Ανάλυση — αναθεώρηση cBot, ανάλυση backtest, μετά-θνήσιμα, συναίσθημα αγοράς, σχεδιασμός οπτικής διαγράμματος, διαχείρηση αγοράς.
Επιφάνειες
- Ιστό τελικά σημεία κάτω από
/api/ai/*(το AI Build συνομιλίαςbuild/{id}/prompt+build/{id}/messages, generate-project, review, analyze-backtest, optimize-params, optimize-run, post-mortem, sentiment, vision, curate, …). Κάθε τελικό σημείο δυνατότητας δέχεται ένα προαιρετικό?modelId=<credential>για να εκτελέσει αυτή τη μία κλήση σε ένα επιλεγμένο μοντέλο. Συν ανακάλυψη μοντέλων (/api/ai/models/probe,/api/ai/usable-models) και δεσμεύσεις ανά-χαρακτηριστικού (/api/ai/feature-bindings,/api/ai/my-feature-bindings). Τα έργα cBot, κατασκευή και εκτέλεση επαναχρησιμοποιούν τα τελικά σημεία του κατασκευαστή (/api/builder/projects…). - MCP εργαλεία (
AiTools) για πελάτες AI — δείτε mcp.md. Η επιλογή παρόχου είναι διαφανής για πελάτες MCP. - AI nav ομάδα — μια σελίδα Blazor ανά δυνατότητα: Build cBot (
/ai/build), Review (/ai/review), Debate (/ai/debate), Market Sentiment (/ai/sentiment), Exposure Check (/ai/exposure), Portfolio Digest (/ai/digest), Tune Advisor (/ai/tune), Optimize (/ai/optimize), συν Portfolio Agent, Alerts, MCP Keys. Σελίδες κοινήAiFeaturePageBase+AiOutputPanel+ έναAiModelSelect. κάθε εμφανίζειAiFeatureNoticeόταν κανένας παροχέας δεν είναι διαμορφωμένο. - Ρυθμίσεις → AI (
/settings/ai, μόνο ιδιοκτήτης) — λίστα παρόχου με έναν Προσθήκη / επεξεργασία διαλόγου παρόχου (είδος, βάση URL με υποδείξεις ανά-είδος και προκαθορισμένες ρυθμίσεις (Kimi/Moonshot, Ollama, LM Studio) που συμπληρώνουν τη βάση URL + δείγμα μοντέλο, μοντέλο, προαιρετικό κλειδί, εναλλαγές δυνατότητας, "ορισμός ως προεπιλεγμένο") και ένα κουμπί Δοκιμή σύνδεσης.
Ρύθμιση
App:Ai υποστηρίζει τόσο το παλιό κλειδί ενιαίου όσο και το σπάρι πολλών παρόχων:
- Παλιό:
ApiKey,Model(προεπιλογήclaude-opus-4-8),BaseUrl,MaxTokens— εξακολουθεί να τιμάται ως α προεπιλεγμένος παροχέας Anthropic. - Πολλαπλοί πάροχοι:
ActiveProvider(είδος) καιProviders[]({ Kind, BaseUrl, Model, ApiKey?, MaxTokens?, Capabilities? }) — εισάγεται στο κατάστημα κατά την εκκίνηση εάν δεν υπάρχουν διαπιστευτήρια ακόμη, έτσι μια ομάδα ops μπορεί να παραδώσει μια διαμορφωμένη (συμπεριλαμβανομένου τοπικού-LLM) ανάπτυξη καθαρά μέσω appsettings/env.
RiskGuardEnabled, RiskGuardAutoStop, RiskGuardInterval χωρίς αλλαγή. Για δοκιμές/dev, κλειδί ρύθμισης
ζει στο ενοποιημένο αρχείο dev-credentials κάτω από Ai.
Αξιοπιστία
Ο παροχέας αντιμετωπίζεται ως αναξιόπιστος — τίποτα δεν μπορεί να κατεβάσει την εφαρμογή. Αυτό ισχύει πανομοιότυπα για cloud και τοπικές τελικές σημεία (ένα νεκρό Ollama επαναλαμβάνει στη συνέχεια υποβαθμίζεται ακριβώς όπως ένα throttled Anthropic):
- Χαριτωμένη υποβάθμιση. Κάθε τρόπος αποτυχίας (κανένας παροχέας, HTTP 4xx/5xx/429, χρονικό όριο, κακοδιαμορφωμένο σώμα,
κενό περιεχόμενο, ανυποστήριχτη δυνατότητα) επιστρέφει α ληφθείσα
AiResult.Fail(reason)— ο πελάτης δεν ποτέ ρίχνει σε σελίδα, εργαλείο MCP ή υπηρεσία φιλοξενίας. - Σωλήνας ανθεκτικότητας.
AddAiHttpClientδίνει το ένα κοινό AIHttpClientένα φραγμένο retry σε παροδικό 5xx / αποτυχίες δικτύου (εκθετικό backoff + jitter) συν γενναίαι ανά-απόπειρες και συνολικά χρονικά όρια (AiHttp), επαναχρησιμοποιημένο από κάθε προσαρμογέας.
Δοκιμή με το ψεύτικο τοπικό LLM
Το επίπεδο AI αποδείχθηκε από άκρο σε άκρο χωρίς εξωτερική εξάρτηση από FakeLocalLlmServer — μια μικρή
εντός διεργασίας συμβατό με OpenAI τελικό σημείο που επιστρέφει α ντερμινιστικό ληφθέν απάντηση, ημέρα-πανομοιότυπο
Ollama/LM Studio/vLLM. Ισχύει:
- Ενότητα — ανά-προσαρμογέα μετάφραση αιτήματος + δοκιμές ανάλυσης απάντησης, δρομολόγηση/δυνατότητα υποβάθμιση.
- Ολοκλήρωση — ο προσαρμογέας συμβατός με OpenAI από άκρο σε άκρο, ο παραμετροποιημένος ανθεκτικότητα θεωρία διαμέσου κάθε προσαρμογέας, και εργαλεία MCP AI.
- E2E —
AiLocalFixtureεκκινεί την εφαρμογή που ορίζεται στο ψεύτικο διακομιστή (ή ένα πραγματικό παροχέα όταν ο προγραμματιστής ορίζειAI_E2E_BASEURL(+ προαιρετικόAI_E2E_API_KEY/AI_E2E_KIND/AI_E2E_MODEL) — πραγματικά διαπιστευτήρια νικήσουν) και οδηγεί κάθε δυνατότητα AI διαμέσου της πραγματικής UI. Προσθήκη ή αλλαγή κάθε δυνατότητας AI απαιτεί δοκιμή E2E μέσω αυτής της εντολής (δείτε το repo δοκιμών εντολή). Μια προαιρετική λωρίδα (AI_LOCAL_LLM=1) τρέχει ένα πραγματικό συμπλήρωμα διαμέσου ενός Ollama Testcontainer.
Ενσωματωμένο τοπικό AI — χωρίς ρύθμιση από προεπιλογή
Το ενσωματωμένο τοπικό LLM ONNX λειτουργεί όπως είναι: όταν ο κατάλογος του μοντέλου του λείπει και
App:Ai:BuiltIn:AutoDownload είναι true (η προεπιλογή), η εφαρμογή κατεβάζει το μοντέλο μια φορά στο
παρασκήνιο από App:Ai:BuiltIn:DownloadBaseUrl. Ενώ η λήψη εκτελείται, κλήσεις AI (και Δοκιμή
σύνδεσης στο Ρυθμίσεις → AI) επιστρέφουν ένα σαφές μήνυμα "το μοντέλο κατεβαίνει (ρύθμιση πρώτης φοράς)"
παρά μια σκληρή αποτυχία. Ανταγωνιστικές/μετρημένες αναπτύξεις ορίστε AutoDownload=false και
προ-παρέχουν τον κατάλογο μοντέλου (App:Ai:BuiltIn:ModelPath). Η πύλη white-label
App:Branding:AllowBuiltInAi εξακολουθεί να ισχύει.
Η λήψη είναι επίσης προ-θερμαινόμενη κατά την εκκίνηση όταν το ενσωματωμένο μοντέλο είναι ο ενεργός παροχέας, έτσι είναι έτοιμο πριν από το πρώτο κλικ AI αντί να αποτύχει εκείνο το κλικ με "κατεβάζεται…". Ρυθμίσεις → AI εμφανίζει την κατάσταση ζωντανής εγκατάστασης στην κάρτα ενσωματωμένου παρόχου — Μοντέλο έτοιμο / Λήψη μοντέλου… / Μοντέλο δεν είναι εγκατεστημένο / Λήψη απέτυχε — με ένα κουμπί Λήψη μοντέλου (ή Δοκιμή πάλι λήψης) που ξεκινά την ετοιμοδουλειά μιας φοράς σε αίτημα (GET /api/ai/built-in/status, POST /api/ai/built-in/install). Η ενεργοποίηση του ενσωματωμένου παρόχου από τις Ρυθμίσεις επαναχρησιμοποιεί τη σειρά που σπάρθηκε ήδη αντί να προσθέσει ένα διπλότυπο, έτσι δεν συγκρούεται ποτέ στο περιορισμό του μοναδικού ενεργού παρόχου.