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

ファイル設定オブジェクト構造

概要

fileConfig オブジェクトを使用すると、サイズ制限やMIMEタイプの制限など、アプリケーションのファイル処理設定を構成できます。このセクションでは、fileConfig オブジェクトの構造について詳しく解説します。

fileConfig の下には8つの主要なフィールドがあります:

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

注記:

  • 執筆時点で、Assistants endpoint は こちらのリストにあるファイルタイプをサポートしています
  • OpenAI、Azure OpenAI、Google、およびカスタムのendpointは、RAG APIを通じてファイルをサポートしています。
  • OpenAI、Azure OpenAI、Anthropic、Google、およびAWS Bedrockの各endpointは、Upload to Provider を介した直接的なファイルアップロードをサポートしています。
  • ocrtext、および stt セクションは、Upload as TextOCR といった機能のファイル処理を制御します。
  • Pluginsなど、言及されていないその他のendpointは、(現時点では)ファイルアップロードをサポートしていません。
  • Assistants endpoint は、定義された endpoint 値として assistants を使用します。その他のすべての endpoint は、定義された値 default を使用します。
    • アシスタント以外のendpointについては、defaultの下ですべてのファイル設定を調整できます。
    • 特定の endpoint の設定を調整したい場合は、対応する endpoint 名をリストアップすることができます。
      • assistants
        • 他のものとは別にデフォルトが定義されているため、"default" は使用しません。
      • openAI
      • azureOpenAI
      • google
      • bedrock
      • YourCustomEndpointName
  • 値を省略することも可能です。その場合、アプリは以下に記載されている各endpointタイプごとに定義されたデフォルト値を使用します。
  • LibreChatでは、1メガバイトを 1 x 1024 x 1024 として計算します。

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
serverFileSizeLimitIntegerサーバーにアップロードされるあらゆるファイルのグローバルな最大サイズ(メガバイト(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
avatarSizeLimitIntegerアバター画像に許可される最大サイズ(メガバイト単位)。Specifically tailored for user avatar uploads, allowing for control over image sizes to maintain consistent quality and loading times.
fileConfig:
  avatarSizeLimit: 2

imageGeneration

KeyTypeDescriptionExample
imageGenerationObject画像生成の出力品質と寸法に関する設定。Allows configuration of either output size as a percentage relative to some base size or as an explicit pixel dimension.

imageGeneration は以下のパラメータをサポートしています:

  • percentage (整数)

    • 生成された画像の出力サイズをパーセンテージで表したもの(例: 100 は基本サイズの100%を意味します)。
    • デフォルトまたは元のサイズに対して出力画像を拡大縮小するには、これを使用します。
  • px (整数)

    • 出力画像の寸法をピクセル単位で指定します(例: 1024)。
    • ベースサイズに関係なく、生成される画像の出力サイズを明示的に設定するためにこれを使用します。

ユースケースに応じて、これらのパラメータ(percentage または px)のうちいずれか1つのみを設定できます。両方を同時に設定することはできません。

設定例:

fileConfig:
  imageGeneration:
    percentage: 100
    px: 1024

fileTokenLimit

KeyTypeDescriptionExample
fileTokenLimitNumber切り捨て前にプロンプトに含めるテキストファイルからの最大トークン数。fileTokenLimit: 100000

説明: テキストコンテンツを添付する際、LibreChatはプロンプト構築の直前に、設定されたトークン制限に合わせて実行時にテキストを切り捨てます。

デフォルト: 100000

fileConfig:
  fileTokenLimit: 100000

ocr

KeyTypeDescriptionExample
ocrObject光学式文字認識(OCR)ファイル処理の設定。Configures which file types are processed using OCR.

説明: ocr セクションでは、視覚的なドキュメントからテキストを抽出するために、どのファイルタイプをOCR機能で処理するかを設定します。

注: このセクションは、OCR処理のためのファイルタイプマッチングを制御します。エージェント機能を有効にし、OCRサービスを設定するには、以下を参照してください:

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsOCRで処理すべきファイルのMIMEタイプパターンのリスト。Uses regular expressions to match file types.

デフォルト: 画像、PDF、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
textObjectOCRを使用しない直接的なテキストファイル解析のための設定。Configures which file types are processed as plain text files for direct content extraction.

説明: text セクションでは、直接的なテキスト抽出を使用して処理するファイルタイプを設定します。

注: テキスト解析は、「テキストとしてアップロード」機能(context機能によって制御されます)で使用されるデフォルトのメソッドです。まずRAG APIのテキスト解析ライブラリの使用を試み、RAG APIが接続されていない場合は、外部サービスを必要としないよりシンプルなテキスト抽出メソッドにフォールバックします。詳細については、テキストとしてアップロードを参照してください。

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of Stringsプレーンテキストとして解析されるべきファイルのMIMEタイプパターンのリスト。Uses regular expressions to match file types.

デフォルト: すべてのテキストファイルおよび一般的なプログラミング言語

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
sttObjectSpeech-to-Text (STT) 音声ファイル処理の設定。Configures which audio file types are processed using STT for transcription.

説明: stt セクションでは、音声をテキストに変換する Speech-to-Text 機能を使用して処理する音声ファイルの種類を設定します。

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsSTTで文字起こしを行う音声ファイルのMIMEタイプパターンのリスト。Uses regular expressions to match audio file types.

デフォルト: 一般的なオーディオ形式

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

注記:

  • text パターンに一致するファイルは、単純なテキスト抽出で処理されます。
  • ocr パターンに一致するファイルは、提供された OCR サービスで処理されます。
  • stt パターンに一致するファイルは、Speech-to-Text(音声認識)で処理されます。
  • 処理の優先順位: OCR > STT > テキスト解析 > フォールバック
  • どのパターンにも一致しないファイルは、テキスト解析にフォールバックされます。

ファイル処理の優先順位

LibreChatは、以下の優先順位に従ってMIMEタイプの照合に基づき、アップロードされたファイルを処理します。

  1. OCR - ファイルが ocr.supportedMimeTypes に一致し、かつ OCR が設定されている場合
  2. STT - ファイルが stt.supportedMimeTypes に一致し、かつ STT が設定されている場合
  3. テキスト解析 - ファイルが text.supportedMimeTypes に一致する場合
  4. フォールバック - 最終手段としてのテキスト解析

この処理順序により、特殊なサービス(OCR/STT)が設定されていない場合でも機能を維持しつつ、最適な抽出品質を確保します。

処理の例

OCRが設定されたPDFファイル:

  • ファイルは ocr.supportedMimeTypes に一致します
  • OCRを使用してテキストを抽出します
  • スキャンされたPDFや画像に対するより高い品質

OCRが設定されていないPDFファイル:

  • ファイルが text.supportedMimeTypes に一致する(またはフォールバックを使用する)
  • テキスト解析ライブラリを使用します
  • テキストを選択可能なデジタルPDFでうまく機能します

Pythonファイル:

  • text.supportedMimeTypes に一致するファイル
  • テキスト解析を使用 (OCRは不要)
  • 直接テキスト抽出

STTが設定された音声ファイル:

  • ファイルは stt.supportedMimeTypes に一致します
  • STTを使用して音声をテキストに文字起こしします

OCRが設定されていない画像ファイル:

  • ファイルは ocr.supportedMimeTypes に一致しますが、OCRは利用できません
  • テキスト解析にフォールバックします
  • OCRなしでは抽出機能が制限されます

この優先順位システムにより、「テキストとしてアップロード」のような機能はOCR設定を必要とせずに動作しつつ、利用可能な場合にはOCRを活用して抽出品質を向上させることができます。

endpoints

KeyTypeDescriptionExample
endpointsRecord/Object個々のendpointに対するファイル処理設定を構成し、endpointごとにカスタマイズできるようにします。Specifies file handling configurations for individual endpoints, allowing customization per endpoint basis.

説明: endpoints 配下の各オブジェクトは、以下の設定を持つことができるレコードです。

概要

  • disabled
    • エンドポイントに対してファイル処理が無効になっているかどうか。
  • fileLimit
    • 1回のアップロードリクエストで許可されるファイルの最大数。
  • fileSizeLimit
    • 1つのファイルの最大サイズ。単位はMBです(例:20メガバイトの場合は 20 と指定します)
  • totalSizeLimit
    • 1回のリクエストにおける全ファイルの合計最大サイズ。単位はMBです(例:20メガバイトの場合は 20 を使用)。
  • supportedMimeTypes
    • アップロードを許可するMIMEタイプを指定するRegular Expressionsのリストです。これをカスタマイズすることで、ファイルタイプを制限できます。

disabled

KeyTypeDescriptionExample
disabledBoolean特定の endpoint でファイルのアップロードが無効になっているかどうかを示します。Setting this to `true` prevents any file uploads to the specified endpoint, overriding any other file-related settings.

デフォルト: false

openAI:
  disabled: true

fileLimit

キー:

KeyTypeDescriptionExample
fileLimitInteger1回のアップロードリクエストで許可されるファイルの最大数。Helps control the volume of uploads and manage server load.

デフォルト: endpointにより異なります

assistants:
  fileLimit: 5

fileSizeLimit

キー:

KeyTypeDescriptionExample
fileSizeLimitInteger各ファイルに許可される最大サイズ(メガバイト(MB)単位)。This limit ensures that no single file exceeds the specified size, allowing for better resource allocation and management.

デフォルト: endpointにより異なります

YourCustomEndpointName:
  fileSizeLimit: 1000

totalSizeLimit

キー:

KeyTypeDescriptionExample
totalSizeLimitInteger1回のリクエストで許可される全ファイルの合計最大サイズ(メガバイト(MB)単位)。This setting is crucial for preventing excessive bandwidth and storage usage by any single upload request.

デフォルト: endpointにより異なります

assistants:
  totalSizeLimit: 50

supportedMimeTypes

キー:

KeyTypeDescriptionExample
supportedMimeTypesArray of Stringsアップロードが許可されるMIMEタイプを定義する正規表現のリスト。This allows for precise control over the types of files that can be uploaded. Invalid regex is ignored.

デフォルト: endpointにより異なります

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

このガイドはいかがでしたか?