Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Cấu trúc đối tượng cấu hình tệp

Tổng quan

Đối tượng fileConfig cho phép bạn cấu hình các thiết lập xử lý tệp cho ứng dụng, bao gồm giới hạn kích thước và hạn chế loại MIME. Phần này cung cấp thông tin chi tiết về cấu trúc của đối tượng fileConfig.

Có 8 trường chính trong fileConfig:

  • endpoints
  • serverFileSizeLimit
  • avatarSizeLimit
  • imageGeneration
  • fileTokenLimit
  • ocr
  • text
  • stt

Ghi chú:

  • Tại thời điểm viết bài, endpoint Assistants hỗ trợ các loại tệp từ danh sách này.
  • OpenAI, Azure OpenAI, Google và các endpoint tùy chỉnh hỗ trợ tệp thông qua RAG API.
  • Các endpoint OpenAI, Azure OpenAI, Anthropic, Google và AWS Bedrock hỗ trợ tải tệp trực tiếp thông qua Upload to Provider.
  • Các phần ocr, text, và stt kiểm soát việc xử lý tệp cho các tính năng như Upload as TextOCR
  • Bất kỳ endpoint nào khác không được đề cập, chẳng hạn như Plugins, đều không hỗ trợ tải tệp lên (tính đến hiện tại).
  • Endpoint Assistants có giá trị endpoint được xác định là assistants. Tất cả các endpoint khác sử dụng giá trị được xác định là default
    • Đối với các endpoint không phải là assistants, bạn có thể điều chỉnh cài đặt tệp cho tất cả chúng trong mục default
    • Nếu bạn muốn điều chỉnh cài đặt cho một endpoint cụ thể, bạn có thể liệt kê các tên endpoint tương ứng của chúng:
      • assistants
        • không sử dụng "default" vì nó đã có các giá trị mặc định được xác định riêng biệt so với các giá trị khác.
      • openAI
      • azureOpenAI
      • google
      • bedrock
      • YourCustomEndpointName
  • Bạn có thể bỏ qua các giá trị, trong trường hợp đó, ứng dụng sẽ sử dụng các giá trị mặc định như được xác định cho từng loại endpoint được liệt kê dưới đây.
  • LibreChat tính 1 megabyte như sau: 1 x 1024 x 1024

Ví dụ

fileConfig:
  endpoints:
    assistants:
      fileLimit: 5
      fileSizeLimit: 10
      totalSizeLimit: 50
      supportedMimeTypes:
        - "image/.*"
        - "application/pdf"
    openAI:
      disabled: true
    default:
      totalSizeLimit: 20
    YourCustomEndpointName:
      fileLimit: 5
      fileSizeLimit: 1000
      supportedMimeTypes:
        - "image/.*"
  serverFileSizeLimit: 1000
  avatarSizeLimit: 2
  fileTokenLimit: 100000
  imageGeneration:
    percentage: 100
    px: 1024
  ocr:
    supportedMimeTypes:
      - "^image/(jpeg|gif|png|webp|heic|heif)$"
      - "^application/pdf$"
      - "^application/vnd\\.openxmlformats-officedocument\\.(wordprocessingml\\.document|presentationml\\.presentation|spreadsheetml\\.sheet)$"
      - "^application/vnd\\.ms-(word|powerpoint|excel)$"
      - "^application/epub\\+zip$"
  text:
    supportedMimeTypes:
      - "^text/(plain|markdown|csv|json|xml|html|css|javascript|typescript|x-python|x-java|x-csharp|x-php|x-ruby|x-go|x-rust|x-kotlin|x-swift|x-scala|x-perl|x-lua|x-shell|x-sql|x-yaml|x-toml)$"
  stt:
    supportedMimeTypes:
      - "^audio/(mp3|mpeg|mpeg3|wav|wave|x-wav|ogg|vorbis|mp4|x-m4a|flac|x-flac|webm)$"

serverFileSizeLimit

KeyTypeDescriptionExample
serverFileSizeLimitIntegerKích thước tối đa toàn cục cho bất kỳ tệp nào được tải lên máy chủ, được chỉ định bằng megabyte (MB).Acts as an overarching limit for file uploads across all endpoints, ensuring that no file exceeds this size server-wide.
fileConfig:
  serverFileSizeLimit: 1000

avatarSizeLimit

KeyTypeDescriptionExample
avatarSizeLimitIntegerKích thước tối đa cho phép đối với hình ảnh đại diện, được chỉ định bằng megabyte (MB).Specifically tailored for user avatar uploads, allowing for control over image sizes to maintain consistent quality and loading times.
fileConfig:
  avatarSizeLimit: 2

imageGeneration

KeyTypeDescriptionExample
imageGenerationObjectCác cài đặt liên quan đến chất lượng và kích thước đầu ra của quá trình tạo hình ảnh.Allows configuration of either output size as a percentage relative to some base size or as an explicit pixel dimension.

imageGeneration hỗ trợ các tham số sau:

  • percentage (Số nguyên)

    • Kích thước đầu ra của hình ảnh được tạo dưới dạng phần trăm (ví dụ: 100 nghĩa là 100% kích thước cơ sở).
    • Sử dụng tùy chọn này để thay đổi tỷ lệ hình ảnh đầu ra so với kích thước mặc định hoặc kích thước gốc.
  • px (Số nguyên)

    • Chỉ định kích thước hình ảnh đầu ra theo pixel (ví dụ: 1024).
    • Sử dụng tùy chọn này để thiết lập kích thước đầu ra của hình ảnh được tạo một cách rõ ràng, bất kể kích thước cơ sở.

Bạn chỉ có thể thiết lập một trong hai tham số này (percentage hoặc px), không được thiết lập cả hai, tùy thuộc vào trường hợp sử dụng của bạn.

Ví dụ cấu hình:

fileConfig:
  imageGeneration:
    percentage: 100
    px: 1024

fileTokenLimit

KeyTypeDescriptionExample
fileTokenLimitNumberSố lượng token tối đa từ các tệp văn bản được bao gồm trong lời nhắc trước khi bị cắt bớt.fileTokenLimit: 100000

Mô tả: Khi đính kèm nội dung văn bản, LibreChat sẽ cắt bớt văn bản tại thời điểm chạy (runtime) theo giới hạn token đã cấu hình ngay trước khi xây dựng prompt.

Mặc định: 100000

fileConfig:
  fileTokenLimit: 100000

ocr

KeyTypeDescriptionExample
ocrObjectCài đặt cho xử lý tệp Nhận dạng Ký tự Quang học (OCR).Configures which file types are processed using OCR.

Mô tả: Phần ocr cấu hình các loại tệp tin nào sẽ được xử lý bằng chức năng OCR để trích xuất văn bản từ các tài liệu hình ảnh.

Lưu ý: Phần này kiểm soát việc khớp loại tệp cho quá trình xử lý OCR. Để bật các khả năng của tác nhân (agent) và cấu hình các dịch vụ OCR, hãy xem:

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsDanh sách các mẫu kiểu MIME cho các tệp cần được xử lý bằng OCR.Uses regular expressions to match file types.

Mặc định: Hình ảnh, tệp PDF và tài liệu Office

fileConfig:
  ocr:
    supportedMimeTypes:
      - "^image/(jpeg|gif|png|webp|heic|heif)$"
      - "^application/pdf$"
      - "^application/vnd\\.openxmlformats-officedocument\\.(wordprocessingml\\.document|presentationml\\.presentation|spreadsheetml\\.sheet)$"
      - "^application/vnd\\.ms-(word|powerpoint|excel)$"
      - "^application/epub\\+zip$"

text

KeyTypeDescriptionExample
textObjectCài đặt để phân tích tệp văn bản trực tiếp mà không cần OCR.Configures which file types are processed as plain text files for direct content extraction.

Mô tả: Phần text cấu hình các loại tệp nào sẽ được xử lý bằng cách sử dụng trích xuất văn bản trực tiếp.

Lưu ý: Phân tích văn bản là phương thức mặc định được sử dụng bởi tính năng "Tải lên dưới dạng văn bản" (được kiểm soát bởi khả năng context). Hệ thống trước tiên sẽ cố gắng sử dụng thư viện phân tích văn bản từ RAG API, và nếu RAG API không được kết nối, hệ thống sẽ chuyển sang phương thức trích xuất văn bản đơn giản hơn mà không yêu cầu bất kỳ dịch vụ bên ngoài nào. Xem Tải lên dưới dạng văn bản để biết thêm thông tin.

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsDanh sách các mẫu kiểu MIME cho các tệp nên được phân tích dưới dạng văn bản thuần túy.Uses regular expressions to match file types.

Mặc định: Tất cả các tệp văn bản và ngôn ngữ lập trình phổ biến

fileConfig:
  text:
    supportedMimeTypes:
      - "^text/(plain|markdown|csv|json|xml|html|css|javascript|typescript|x-python|x-java|x-csharp|x-php|x-ruby|x-go|x-rust|x-kotlin|x-swift|x-scala|x-perl|x-lua|x-shell|x-sql|x-yaml|x-toml)$"

stt

KeyTypeDescriptionExample
sttObjectCài đặt cho việc xử lý tệp âm thanh Chuyển đổi giọng nói thành văn bản (STT).Configures which audio file types are processed using STT for transcription.

Mô tả: Phần stt cấu hình các loại tệp âm thanh nào sẽ được xử lý bằng chức năng Speech-to-Text để chuyển đổi âm thanh thành văn bản.

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsDanh sách các mẫu kiểu MIME cho tệp âm thanh cần được chuyển đổi thành văn bản bằng STT.Uses regular expressions to match audio file types.

Mặc định: Các định dạng âm thanh phổ biến

fileConfig:
  stt:
    supportedMimeTypes:
      - "^audio/(mp3|mpeg|mpeg3|wav|wave|x-wav|ogg|vorbis|mp4|x-m4a|flac|x-flac|webm)$"

Ghi chú:

  • Các tệp khớp với các mẫu text sẽ được xử lý bằng cách trích xuất văn bản đơn giản
  • Các tệp khớp với các mẫu ocr sẽ được xử lý bằng dịch vụ OCR được cung cấp
  • Các tệp khớp với các mẫu stt sẽ được xử lý bằng tính năng chuyển đổi giọng nói thành văn bản (Speech-to-Text).
  • Thứ tự ưu tiên xử lý: OCR > STT > phân tích văn bản > dự phòng
  • Các tệp không khớp với bất kỳ mẫu nào sẽ quay lại sử dụng phân tích văn bản

Ưu tiên xử lý tệp

LibreChat xử lý các tệp đã tải lên dựa trên việc khớp loại MIME theo thứ tự ưu tiên sau:

  1. OCR - Nếu tệp khớp với ocr.supportedMimeTypes VÀ OCR đã được cấu hình
  2. STT - Nếu tệp khớp với stt.supportedMimeTypes VÀ STT đã được cấu hình
  3. Phân tích văn bản - Nếu tệp khớp với text.supportedMimeTypes
  4. Dự phòng (Fallback) - Phân tích văn bản như là phương án cuối cùng

Thứ tự xử lý này đảm bảo chất lượng trích xuất tối ưu trong khi vẫn duy trì chức năng ngay cả khi các dịch vụ chuyên biệt (OCR/STT) chưa được cấu hình.

Các ví dụ về xử lý

Tệp PDF đã cấu hình OCR:

  • Tệp khớp với ocr.supportedMimeTypes
  • Sử dụng OCR để trích xuất văn bản
  • Chất lượng tốt hơn cho các tệp PDF và hình ảnh đã quét

Tệp PDF không được cấu hình OCR:

  • Tệp khớp với text.supportedMimeTypes (hoặc sử dụng dự phòng)
  • Sử dụng thư viện phân tích cú pháp văn bản
  • Hoạt động tốt với các tệp PDF kỹ thuật số có văn bản có thể chọn được

Tệp Python:

  • Tệp khớp với text.supportedMimeTypes
  • Sử dụng phân tích văn bản (không cần OCR)
  • Trích xuất văn bản trực tiếp

Tệp âm thanh với STT đã được cấu hình:

  • Tệp khớp với stt.supportedMimeTypes
  • Sử dụng STT để chuyển đổi âm thanh thành văn bản

Tệp hình ảnh không được cấu hình OCR:

  • Tệp khớp với ocr.supportedMimeTypes nhưng OCR không khả dụng
  • Tự động chuyển sang phân tích văn bản
  • Khả năng trích xuất hạn chế nếu không có OCR

Hệ thống ưu tiên này cho phép các tính năng như "Upload as Text" hoạt động mà không cần cấu hình OCR, đồng thời vẫn tận dụng OCR khi khả dụng để cải thiện chất lượng trích xuất.

endpoints

KeyTypeDescriptionExample
endpointsRecord/ObjectCấu hình các thiết lập xử lý tệp cho từng endpoint riêng lẻ, cho phép tùy chỉnh trên cơ sở từng endpoint.Specifies file handling configurations for individual endpoints, allowing customization per endpoint basis.

Mô tả: Mỗi đối tượng trong endpoints là một bản ghi có thể chứa các cài đặt sau:

Tổng quan

  • disabled
    • Liệu việc xử lý tệp có bị vô hiệu hóa đối với endpoint này hay không.
  • fileLimit
    • Số lượng tệp tối đa được phép cho mỗi yêu cầu tải lên.
  • fileSizeLimit
    • Kích thước tối đa cho một tệp tin đơn lẻ. Tính theo đơn vị MB (ví dụ: sử dụng 20 cho 20 megabyte)
  • totalSizeLimit
    • Tổng kích thước tối đa cho tất cả các tệp trong một yêu cầu duy nhất. Theo đơn vị MB (ví dụ: sử dụng 20 cho 20 megabyte)
  • supportedMimeTypes
    • Một danh sách các Regular Expressions chỉ định những MIME type nào được phép tải lên. Danh sách này có thể được tùy chỉnh để hạn chế các loại tệp.

disabled

KeyTypeDescriptionExample
disabledBooleanCho biết liệu tính năng tải tệp lên có bị vô hiệu hóa cho một endpoint cụ thể hay không.Setting this to `true` prevents any file uploads to the specified endpoint, overriding any other file-related settings.

Mặc định: false

openAI:
  disabled: true

fileLimit

Khóa:

KeyTypeDescriptionExample
fileLimitIntegerSố lượng tệp tối đa được phép trong một yêu cầu tải lên.Helps control the volume of uploads and manage server load.

Mặc định: Thay đổi tùy theo endpoint

assistants:
  fileLimit: 5

fileSizeLimit

Khóa:

KeyTypeDescriptionExample
fileSizeLimitIntegerKích thước tối đa cho phép đối với mỗi tệp riêng lẻ, được chỉ định bằng megabyte (MB).This limit ensures that no single file exceeds the specified size, allowing for better resource allocation and management.

Mặc định: Thay đổi tùy theo endpoint

YourCustomEndpointName:
  fileSizeLimit: 1000

totalSizeLimit

Khóa:

KeyTypeDescriptionExample
totalSizeLimitIntegerTổng kích thước tối đa cho phép đối với tất cả các tệp trong một yêu cầu, được chỉ định bằng megabyte (MB).This setting is crucial for preventing excessive bandwidth and storage usage by any single upload request.

Mặc định: Thay đổi tùy theo endpoint

assistants:
  totalSizeLimit: 50

supportedMimeTypes

Khóa:

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsDanh sách các biểu thức chính quy xác định các loại MIME được phép tải lên.This allows for precise control over the types of files that can be uploaded. Invalid regex is ignored.

Mặc định: Thay đổi tùy theo endpoint

assistants:
  supportedMimeTypes:
      - "image/.*"
      - "application/pdf"

Hướng dẫn này thế nào?