Chrome AI Prompt Chat Playground
Δοκιμάστε το πειραματικό ενσωματωμένο Prompt API (LanguageModel) του Chrome απευθείας στο πρόγραμμα περιήγησής σας. Στείλτε προτροπές στο Gemini Nano on-device, διαμορφώστε μια system prompt και παραμέτρους δειγματοληψίας, παρακολουθήστε τις απαντήσεις να ροέουν σε πραγματικό χρόνο και παρακολουθήστε τη λήψη του μοντέλου και τη χρήση του context window — χωρίς απαίτηση διακομιστή.
Readme
Τι είναι το Prompt API;
Το Prompt API είναι μια πειραματική πρόταση πλατφόρμας ιστού από την W3C Web Machine Learning Community Group που εκθέτει ένα μοντέλο μεγάλης γλώσσας που παρέχεται από το πρόγραμμα περιήγησης στο JavaScript μέσω μιας διεπαφής window.LanguageModel. Οι σελίδες δημιουργούν μια συνεδρία με LanguageModel.create(), προαιρετικά τη ρυθμίζουν με ένα σύστημα prompt, και στη συνέχεια καλούν prompt() ή promptStreaming() για να λάβουν μια απάντηση.
Σε αντίθεση με την κλήση ενός API LLM που φιλοξενείται, το μοντέλο εκτελείται στη συσκευή του χρήστη. Αυτό σημαίνει ότι οι είσοδοι δεν φεύγουν ποτέ από τη μηχανή, η σελίδα λειτουργεί χωρίς σύνδεση μόλις το μοντέλο αποθηκευτεί στη μνήμη cache, και δεν υπάρχουν κόστη ανά αίτημα. Στο Chrome, το υποκείμενο μοντέλο είναι το Gemini Nano, αλλά το API είναι σκόπιμα ανεξάρτητο από το μοντέλο, ώστε άλλα προγράμματα περιήγησης να μπορούν να συνδέσουν διαφορετικές υλοποιήσεις.
Μια συνεδρία είναι κατάσταση: παρακολουθεί το ιστορικό συνομιλίας εντός ενός παραθύρου περιεχομένου που μετράται σε tokens. Όταν το παράθυρο γεμίσει, τα παλαιότερα μη-σύστημα μηνύματα αφαιρούνται αυτόματα (ένα γεγονός contextoverflow ενεργοποιείται), και μπορείτε να ελέγξετε session.contextUsage και session.contextWindow ανά πάσα στιγμή για να δείτε πόσος χώρος έχει απομείνει.
Περιγραφή εργαλείου
Αυτή η πλατφόρμα είναι μια διαδραστική επιφάνεια συνομιλίας συνδεδεμένη με window.LanguageModel. Σας επιτρέπει να ορίσετε ένα σύστημα prompt, να στείλετε μηνύματα και να παρακολουθήσετε το μοντέλο να ρέει tokens σε πραγματικό χρόνο. Μια γραμμή προόδου δείχνει τη διαθεσιμότητα του μοντέλου και την πρόοδο λήψης, και μια γραμμή χρήσης token αναφέρει πόσο από το παράθυρο περιεχομένου της συνεδρίας καταναλώνεται.
Η συνεδρία δημιουργείται με τεμπέλια κατά την πρώτη αποστολή και επαναχρησιμοποιείται σε όλα τα μηνύματα έως ότου αλλάξετε το σύστημα prompt, οπότε καταστρέφεται και δημιουργείται μια νέα με τις νέες οδηγίες.
Χαρακτηριστικά
- Απαντήσεις ροής — χρησιμοποιεί
promptStreaming()ώστε τα tokens να εμφανίζονται στη συνομιλία καθώς παράγονται. - Επεξεργαστής συστήματος prompt — ορίστε έναν μόνιμο ρόλο ή συμπεριφορά που επηρεάζει κάθε απάντηση.
- Κουμπί διακοπής — ακυρώστε ένα prompt σε εξέλιξη με έναν
AbortControllerχωρίς να καταστρέψετε τη συνεδρία. - Ζωντανή χρήση περιεχομένου — οπτικοποιεί
contextUsageέναντιcontextWindowώστε να μπορείτε να δείτε πότε η συνομιλία είναι έτοιμη να υπερχειλίσει. - Διαθεσιμότητα και πρόοδος λήψης — εμφανίζει την κατάσταση
availability()και τα γεγονόταdownloadprogressενώ το μοντέλο λαμβάνεται.
Περιπτώσεις χρήσης
- Δοκιμή prompts τοπικά — επαναλάβετε τα σύστημα prompts και τα μοτίβα few-shot χωρίς να πληρώνετε για ένα API cloud.
- Δοκιμή της σκοπιμότητας τεχνητής νοημοσύνης στη συσκευή — επαληθεύστε ότι το Prompt API είναι διαθέσιμο, δείτε πόσο μεγάλο είναι το παράθυρο περιεχομένου και κάντε benchmark την ταχύτητα απόκρισης στο υλικό σας.
- Προσχέδιο ευαίσθητο στο απόρρητο — καταιγισμός ιδεών ή αναδιατύπωση κειμένου που δεν πρέπει να αποσταλεί σε ένα διακομιστή τρίτου μέρους.
Απαιτήσεις
- Ένα πρόγραμμα περιήγησης που υλοποιεί το Prompt API. Το Chrome 138+ το εκθέτει πειραματικά· σε παλαιότερες εκδόσεις μπορεί να χρειαστεί να το ενεργοποιήσετε μέσω
chrome://flags/#prompt-api-for-gemini-nanoκαι να έχετε λάβει το μοντέλο στη συσκευή. - Ένα ασφαλές περιεχόμενο (HTTPS ή
localhost). - Μια συσκευή που πληροί τις απαιτήσεις υλικού του μοντέλου (επαρκής χώρος δίσκου, RAM και υποστηριζόμενη GPU/CPU). Σε μη υποστηριζόμενες συσκευές, το
availability()επιστρέφειunavailable. - Αρχικό εύρος ζώνης για λήψη του μοντέλου. Οι επόμενες συνεδρίες επαναχρησιμοποιούν το μοντέλο στη μνήμη cache.
Πώς λειτουργεί
- Κατά την προσάρτηση, το εργαλείο ελέγχει
typeof window.LanguageModel. Εάν λείπει, μια προειδοποίηση αντικαθιστά την είσοδο συνομιλίας. - Το
LanguageModel.availability()αναφέρει ένα από ταavailable,downloadable,downloadingήunavailable. Το αποτέλεσμα εμφανίζεται στη γραμμή προόδου. - Την πρώτη φορά που πατάτε Αποστολή, το εργαλείο καλεί
LanguageModel.create()με ένανmonitorπου ρέει γεγονόταdownloadprogressστο UI. Εάν έχει οριστεί ένα σύστημα prompt, μεταφέρεται μέσωinitialPrompts: [{ role: "system", content: ... }]. - Το μήνυμα χρήστη αποστέλλεται μέσω
session.promptStreaming(text, { signal }). Το επιστρεφόμενοReadableStream<string>καταναλώνεται κομμάτι κομμάτι και προσαρτάται στο μήνυμα του βοηθού. - Μετά από κάθε απάντηση, τα
session.contextUsageκαιsession.contextWindowδιαβάζονται και αντικατοπτρίζονται στη γραμμή χρήσης token. - Το πάτημα Διακοπή καλεί
controller.abort(), το οποίο απορρίπτει τη ροή σε εξέλιξη με έναAbortErrorενώ αφήνει τη συνεδρία ζωντανή για το επόμενο prompt. - Η επεξεργασία του συστήματος prompt ακυρώνει τη συνεδρία στη μνήμη cache: η υπάρχουσα
destroy()-ται και η επόμενη αποστολή δημιουργεί μια νέα συνεδρία με τις ενημερωμένες οδηγίες.
Επεξήγηση επιλογών
- Σύστημα prompt — μια ελεύθερη οδηγία που μεταφέρεται ως το πρώτο μήνυμα με ρόλο
system. Επηρεάζει όλες τις επόμενες σειρές. Αν το αφήσετε κενό, δημιουργείται μια συνεδρία χωρίς μήνυμα συστήματος. - Αποστολή / Διακοπή — Αποστολή υποβάλλει την είσοδο ως μήνυμα
user. Διακοπή ακυρώνει την απάντηση ροής χωρίς να διαγράφει προηγούμενα μηνύματα. - Χρήση token —
χρησιμοποιημένα / σύνολοtokens για την τρέχουσα συνεδρία. Όταν ταχρησιμοποιημέναπλησιάζουν τοσύνολο, τα παλαιότερα ζεύγη χρήστη/βοηθού θα αφαιρεθούν στο επόμενο prompt. - Κατάσταση μοντέλου — συνδυασμένη ανάγνωση
availability()καιdownloadprogress. Ενώ το μοντέλο λαμβάνεται, η γραμμή κινείται και εμφανίζει ένα ποσοστό.
Περιορισμοί
- Το Prompt API είναι πειραματικό. Τα ονόματα μεθόδων, οι επιλογές (π.χ.
inputUsageέναντιcontextUsage) και η σημασιολογία γεγονότων ενδέχεται να αλλάξουν μεταξύ των εκδόσεων του Chrome. - Η ποιότητα εξόδου, η ακρίβεια και η ακολούθηση οδηγιών εξαρτώνται εξ ολοκλήρου από το μοντέλο που παρέχεται από το πρόγραμμα περιήγησης και δεν είναι εγγυημένες.
- Το παράθυρο περιεχομένου είναι μικρό σε σύγκριση με τα φιλοξενούμενα LLMs. Οι μεγάλες συνομιλίες θα υπερχειλίσουν και θα σιωπηλά ρίξουν τις πρώτες σειρές.
- Το API δεν εκτίθεται σε web workers και ενδέχεται να απαιτεί εξουσιοδότηση Permissions Policy (
language-model) σε iframes διασταυρωμένης προέλευσης. - Αυτό το εργαλείο σκόπιμα δεν εκθέτει
temperature,topK, χρήση εργαλείων, πολυτροπικές εισόδους, δομημένη έξοδο (responseConstraint) ή κλωνοποίηση συνεδρίας. Είναι μέρος της προδιαγραφής αλλά παραμένουν εκτός της πλατφόρμας για να παραμείνει εστιασμένη στην απλή συνομιλία.
Συχνές ερωτήσεις
Γιατί λέει ότι το API δεν υποστηρίζεται;
Το window.LanguageModel είναι απροσδιόριστο στο πρόγραμμα περιήγησής σας. Δοκιμάστε το τελευταίο Chrome σε επιτραπέζιο υπολογιστή και, εάν χρειάζεται, ενεργοποιήστε τη σημαία Prompt API και περιμένετε να λάβει το μοντέλο στη συσκευή μέσω chrome://components.
Γιατί είναι αργή η πρώτη απάντηση; Η πρώτη κλήση ενδέχεται να ενεργοποιήσει μια λήψη μοντέλου (παρακολουθήστε τη γραμμή προόδου) και ένα βήμα δημιουργίας συνεδρίας. Τα επόμενα prompts επαναχρησιμοποιούν την ίδια συνεδρία και ξεκινούν τη ροή σχεδόν αμέσως.
Φεύγει το prompt μου από τη συσκευή; Όχι. Το μοντέλο εκτελείται τοπικά. Το κείμενό σας δεν αποστέλλεται σε κανέναν διακομιστή από αυτό το εργαλείο.
Τι συμβαίνει όταν το περιεχόμενο γεμίσει;
Η συνεδρία ενεργοποιεί ένα γεγονός contextoverflow και αφαιρεί τις παλαιότερες σειρές που δεν είναι συστήματος για να κάνει χώρο. Το σύστημα prompt διατηρείται.
Γιατί η αλλαγή του συστήματος prompt διέγραψε το στυλ απάντησης στη μέση της συνομιλίας; Η επεξεργασία του συστήματος prompt καταστρέφει την τρέχουσα συνεδρία και δημιουργεί μια νέα κατά την επόμενη αποστολή. Η νέα συνεδρία δεν έχει μνήμη των προηγούμενων σειρών.