Skip to main content

Δυνατότητες 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Απαιτούμενο κλειδίΑναζήτηση ιστούΌρασηΣημειώσεις
Ενσωματωμένο τοπικό AIBuiltInOnnxn/a (εντός διεργασίας)όχι✖✖παραδίδεται μοντέλο ONNX GenAI, ενεργοποιημένο από προεπιλογή
AnthropicAnthropichttps://api.anthropic.com/ναι✅✅Messages API, web_search εργαλείο
OpenAIOpenAiCompatiblehttps://api.openai.com/v1/ναιπροαίρεσηπροαίρεσηChat Completions
Azure OpenAIAzureOpenAihttps://<resource>.openai.azure.com/ναι✅✅διαδρομή ανάπτυξης + api-version
Google GeminiGeminihttps://generativelanguage.googleapis.com/ναι✅✅generateContent, google_search grounding
Ollama (τοπικό)OpenAiCompatiblehttp://localhost:11434/v1/όχι✖εξαρτώμενο από μοντέλομέσω προσαρμογέα συμβατού με OpenAI
LM Studio (τοπικό)OpenAiCompatiblehttp://localhost:1234/v1/όχιεξαρτώμενο από μοντέλοεξαρτώμενο από μοντέλομέσω προσαρμογέα συμβατού με OpenAI
vLLM / llama.cpp / LocalAIOpenAiCompatibleη URL σαςόχι✖εξαρτώμενο από μοντέλομέσω προσαρμογέα συμβατού με OpenAI
OpenRouter / Groq / Together / Mistral / DeepSeekOpenAiCompatibleURL παρόχουναι✖εξαρτώμενο από μοντέλομέσω προσαρμογέα συμβατού με 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 δίνει το ένα κοινό AI HttpClient ένα φραγμένο 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). Η ενεργοποίηση του ενσωματωμένου παρόχου από τις Ρυθμίσεις επαναχρησιμοποιεί τη σειρά που σπάρθηκε ήδη αντί να προσθέσει ένα διπλότυπο, έτσι δεν συγκρούεται ποτέ στο περιορισμό του μοναδικού ενεργού παρόχου.