Μετάβαση στο κύριο περιεχόμενο

Συνομιλία με έγγραφα

Η Συνομιλία με έγγραφα επιτρέπει στο Libre WebUI να αναζητά μεταφορτωμένα έγγραφα και να προσθέτει σχετικά αποσπάσματα στο περιεχόμενο της συνομιλίας.

Υποστηριζόμενα αρχεία

Υποστηρίζονται οι ακόλουθες μεταφορτώσεις:

  • PDF (με προέλευση ανά σελίδα)
  • Απλό κείμενο και αρχεία καταγραφής
  • Markdown (.md, .markdown, .mdx, με προέλευση ανά ενότητα)
  • HTML
  • Έγγραφα Word (.docx)
  • Παρουσιάσεις (.pptx, με προέλευση ανά διαφάνεια)
  • Υπολογιστικά φύλλα (.xlsx, με προέλευση ανά φύλλο) και CSV/TSV
  • Πηγαίος κώδικας (TypeScript, Python, Go, Rust, SQL, YAML και άλλες συνήθεις γλώσσες)
  • Εικόνες (.png, .jpg, .webp, .gif) — το κείμενο διαβάζεται από το ρυθμισμένο μοντέλο όρασης (Ρυθμίσεις → Προεπιλογές → Μοντέλο όρασης)
  • Ήχος (.wav, .webm) — μεταγράφεται μέσω του παρόχου μετατροπής ομιλίας σε κείμενο, πίσω από την ίδια πύλη πρόσβασης STT με τη φωνητική εισαγωγή
  • Μέγιστο μέγεθος αρχείου: 10 MB

Οι μορφές Office αποσυσκευάζονται με οριοθετημένο parser του αποθετηρίου — καμία βιβλιοθήκη εγγράφων τρίτου μέρους δεν εκτελείται στη διεργασία του διακομιστή. Η επαναμεταφόρτωση πανομοιότυπων byte στο ίδιο πεδίο αποδιπλοποιείται αντί να εισαχθεί δύο φορές.

Η εξαγωγή εικόνας και ήχου δρομολογείται σε παρόχους που έχετε ήδη ρυθμίσει — δεν περιλαμβάνεται τοπικό OCR ή μηχανή ομιλίας και τίποτε δεν εξέρχεται από την εγκατάσταση πέρα από την κλήση στο μοντέλο που επιλέξατε. Ένα PDF χωρίς επίπεδο κειμένου (σάρωση) αντιμετωπίζεται με τον ίδιο τρόπο: ανακτώνται οι ενσωματωμένες εικόνες JPEG των σελίδων και διαβάζονται μέσω του μοντέλου όρασης, με προέλευση ανά σελίδα. Οι σαρώσεις σε άλλες κωδικοποιήσεις εικόνας (CCITT fax, JBIG2) εξακολουθούν να μην αποδίδουν κείμενο. Αν δεν έχει ρυθμιστεί μοντέλο όρασης ή πάροχος STT, η μεταφόρτωση επισημαίνεται ως αποτυχημένη και ο λόγος εμφανίζεται στις Ρυθμίσεις → Έγγραφα.

Τα αρχεία επεξεργάζονται από το backend και αποθηκεύονται μαζί με τα υπόλοιπα δεδομένα της εφαρμογής.

Λειτουργίες αναζήτησης

Το Libre WebUI υποστηρίζει δύο λειτουργίες ανάκτησης:

ΛειτουργίαΠότε χρησιμοποιείταιΣημειώσεις
Αναζήτηση λέξεων-κλειδιώνΠάντα διαθέσιμηΚατάταξη BM25· δεν απαιτείται μοντέλο embedding
Υβριδική αναζήτησηΤα embeddings είναι ενεργά στις ΡυθμίσειςΣυνδυάζει τη διανυσματική κατάταξη με BM25 μέσω reciprocal-rank fusion

Με ενεργά embeddings, κάθε ερώτημα εκτελεί και τις δύο κατατάξεις και τις συνδυάζει: μια ακριβής αντιστοίχιση όρου μπορεί να υπερισχύσει ενός σημασιολογικά παρόμοιου αλλά πιο αόριστου τμήματος, ενώ τα τμήματα των οποίων τα embeddings δημιουργούνται ακόμη παραμένουν προσβάσιμα μέσω της λεξικής πλευράς. Αν τα embeddings αποτύχουν ή απενεργοποιηθούν, η αναζήτηση εγγράφων επιστρέφει σε καθαρή αντιστοίχιση λέξεων-κλειδιών.

Η λεξική βαθμολόγηση εκτελείται στη διεργασία πάνω στα τμήματα στα οποία έχετε πρόσβαση. Το Libre σκόπιμα δεν διατηρεί ευρετήριο πλήρους κειμένου στον δίσκο για τα τμήματα εγγράφων, επειδή το κείμενο των τμημάτων αποθηκεύεται κρυπτογραφημένο και ένα ευρετήριο token θα διατηρούσε απλό κείμενο δίπλα στο κρυπτογραφημένο. Ένα τμήμα προκρίνεται στη λεξική κατάταξη μόνο όταν περιέχει πλήρως τουλάχιστον μία λέξη του ερωτήματος, επομένως ένα σύνθετο αναγνωριστικό όπως ALPHA_BETA_GAMMA δεν εμφανίζει ποτέ κείμενο που απλώς μοιράζεται ένα τμήμα του.

Οι συλλογές γνώσης που έχουν κοινοποιηθεί σε εσάς συμμετέχουν αυτόματα και στις δύο κατατάξεις. Ο έλεγχος πρόσβασής τους επιβάλλεται μέσα στο ίδιο το διανυσματικό ερώτημα — οι παραχωρήσεις δημοσιεύονται στο ACL του ευρετηρίου, οπότε η ανάκληση μιας κοινοποίησης αποκρύπτει αυτά τα έγγραφα στην αμέσως επόμενη αναζήτηση χωρίς νέα δημιουργία embeddings.

Ενεργοποίηση σημασιολογικής αναζήτησης

Εγκαταστήστε ένα μοντέλο embedding:

ollama pull nomic-embed-text

Στη συνέχεια ανοίξτε τις Ρυθμίσεις και ενεργοποιήστε τα embeddings. Μπορείτε να χρησιμοποιήσετε τοπικά μοντέλα embedding Ollama ή πρόσθετα παρόχων με δυνατότητα embedding.

Προεπιλεγμένες ρυθμίσεις embedding:

  • Μοντέλο: nomic-embed-text
  • Μέγεθος τμήματος: 1000 χαρακτήρες
  • Επικάλυψη τμημάτων: 200 χαρακτήρες
  • Όριο ομοιότητας: 0.3

Παραπομπές και λειτουργία πλήρους εγγράφου

Τα ανακτημένα αποσπάσματα περιλαμβάνουν προέλευση: το όνομα αρχείου πηγής, τον δείκτη τμήματος, τη βαθμολογία ανάκτησης και — για μορφές με χάρτη τμημάτων — τη σελίδα, διαφάνεια, φύλλο ή ενότητα Markdown από όπου προήλθε το απόσπασμα. Το περιεχόμενο της συνομιλίας επισημαίνει κάθε απόσπασμα με αυτή τη θέση και η πλαϊνή περιοχή Πηγές της συνομιλίας παραθέτει τις αναφερόμενες θέσεις κάτω από κάθε έγγραφο.

Κάθε συνομιλία μπορεί επίσης να μεταβεί σε λειτουργία πλήρους εγγράφου από την περιοχή Πηγές. Αντί για ανακτημένα αποσπάσματα, αποστέλλεται με το μήνυμα ολόκληρο το εξαγόμενο περιεχόμενο κάθε εγγράφου εντός πεδίου. Ένα όριο token (FULL_DOCUMENT_CONTEXT_MAX_TOKENS, προεπιλογή 32000) προστατεύει το παράθυρο περιεχομένου του μοντέλου: όταν τα συνημμένα έγγραφα το υπερβαίνουν, η συνομιλία επιστρέφει στην ανάκτηση και η περιοχή Πηγές εξηγεί τον λόγο.

Μεταφόρτωση και αναζήτηση

  1. Μεταφορτώστε ένα υποστηριζόμενο αρχείο από τα στοιχεία ελέγχου εγγράφων.
  2. Περιμένετε να ολοκληρωθεί η επεξεργασία.
  3. Υποβάλετε μια ερώτηση στη συνομιλία.
  4. Το Libre WebUI ανακτά σχετικά τμήματα για τη συνεδρία και τα συμπεριλαμβάνει ως περιεχόμενο.

Παραδείγματα προτροπών:

Summarize the uploaded document in five bullets.
What deadlines are mentioned in the PDF?
Find the section that talks about pricing.
Compare the uploaded policy with this proposed change.

Endpoints API

EndpointΣκοπός
POST /api/documents/uploadΜεταφόρτωση υποστηριζόμενου εγγράφου
GET /api/documentsΛίστα μεταφορτωμένων εγγράφων
GET /api/documents/session/:sessionIdΛίστα εγγράφων συνεδρίας συνομιλίας
POST /api/documents/searchΑναζήτηση εγγράφων
DELETE /api/documents/:documentIdΔιαγραφή εγγράφου
GET /api/documents/embeddings/statusΠροβολή κατάστασης embeddings
POST /api/documents/embeddings/regenerateΝέα δημιουργία embeddings

Βέλτιστες πρακτικές

  • Περιορίστε τις μεταφορτώσεις στην τρέχουσα εργασία.
  • Προτιμήστε PDF με κείμενο· τα σαρωμένα PDF λειτουργούν μέσω του μοντέλου όρασης, αλλά απαιτούν μία κλήση μοντέλου ανά σελίδα.
  • Δημιουργήστε ξανά τα embeddings μετά την αλλαγή μοντέλου embedding.
  • Μειώστε το όριο ομοιότητας αν η σημασιολογική αναζήτηση παραλείπει χρήσιμο περιεχόμενο.
  • Αυξήστε το όριο αν τα αποτελέσματα έχουν πολύ θόρυβο.

Σχετική τεκμηρίωση