๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๐Ÿชถ Apache Tika Extraction

๊ฒฝ๊ณ 

์ด ํŠœํ† ๋ฆฌ์–ผ์€ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ์—ฌ๋กœ ์ œ๊ณต๋˜๋ฉฐ Open WebUI ํŒ€์—์„œ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŠน์ • ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋งž๊ฒŒ Open WebUI๋ฅผ ์‚ฌ์šฉ์ž ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐ๋งŒ ๋ชฉ์ ์„ ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”? ๊ธฐ์—ฌ ํŠœํ† ๋ฆฌ์–ผ์„ ํ™•์ธํ•ด ๋ณด์„ธ์š”.

๐Ÿชถ Apache Tika Extractionโ€‹

์ด ๋ฌธ์„œ๋Š” Apache Tika๋ฅผ Open WebUI์— ํ†ตํ•ฉํ•˜๋Š” ๋‹จ๊ณ„๋ณ„ ๊ฐ€์ด๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Apache Tika๋Š” ์ฝ˜ํ…์ธ  ๋ถ„์„ ํˆดํ‚ท์œผ๋กœ, 1,000๊ฐœ ์ด์ƒ์˜ ๋‹ค์–‘ํ•œ ํŒŒ์ผ ์œ ํ˜•์—์„œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ํ…์ŠคํŠธ ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ์ง€ ๋ฐ ์ถ”์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Tika๋Š” ๊ฒ€์ƒ‰ ์—”์ง„ ์ƒ‰์ธ ์ƒ์„ฑ, ์ฝ˜ํ…์ธ  ๋ถ„์„, ๋ฒˆ์—ญ ๋“ฑ ๋‹ค์–‘ํ•œ ์ž‘์—…์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ „์ œ ์กฐ๊ฑดโ€‹

  • Open WebUI ์ธ์Šคํ„ด์Šค
  • ์‹œ์Šคํ…œ์— ์„ค์น˜๋œ Docker
  • Open WebUI์šฉ์œผ๋กœ ์„ค์ •๋œ Docker ๋„คํŠธ์›Œํฌ

ํ†ตํ•ฉ ๋‹จ๊ณ„โ€‹

1๋‹จ๊ณ„: Docker Compose ํŒŒ์ผ ์ƒ์„ฑ ๋˜๋Š” Docker ๋ช…๋ น ์‹คํ–‰ํ•˜์—ฌ Apache Tika ์‹คํ–‰โ€‹

Apache Tika๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค:

์˜ต์…˜ 1: Docker Compose ์‚ฌ์šฉ

Open WebUI ์ธ์Šคํ„ด์Šค์™€ ๋™์ผํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— docker-compose.yml์ด๋ผ๋Š” ์ƒˆ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์„ธ์š”. ํŒŒ์ผ์— ๋‹ค์Œ ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

services:
tika:
image: apache/tika:latest-full
container_name: tika
ports:
- "9998:9998"
restart: unless-stopped

๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ Docker Compose ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜์„ธ์š”:

docker-compose up -d

์˜ต์…˜ 2: Docker ์‹คํ–‰ ๋ช…๋ น ์‚ฌ์šฉ

๋˜๋Š” ๋‹ค์Œ Docker ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ Apache Tika๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

docker run -d --name tika \
-p 9998:9998 \
--restart unless-stopped \
apache/tika:latest-full

Docker ์‹คํ–‰ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ Open WebUI ์ธ์Šคํ„ด์Šค์™€ ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด --network ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

2๋‹จ๊ณ„: Open WebUI๋ฅผ Apache Tika ์‚ฌ์šฉ์œผ๋กœ ๊ตฌ์„ฑโ€‹

Open WebUI์—์„œ Apache Tika๋ฅผ ์ปจํ…์ŠคํŠธ ์ถ”์ถœ ์—”์ง„์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”:

  • Open WebUI ์ธ์Šคํ„ด์Šค์— ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.
  • ๊ด€๋ฆฌ ํŒจ๋„ ์„ค์ • ๋ฉ”๋‰ด๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฌธ์„œ ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ ์ฝ˜ํ…์ธ  ์ถ”์ถœ ์—”์ง„ ๋“œ๋กญ๋‹ค์šด์„ Tika๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  • ์ปจํ…์ŠคํŠธ ์ถ”์ถœ ์—”์ง„ URL์„ http://tika:9998๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

Docker์—์„œ Apache Tika ๊ฒ€์ฆ

Docker ํ™˜๊ฒฝ์—์„œ Apache Tika๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

1. Apache Tika Docker ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘โ€‹

๋จผ์ € Apache Tika Docker ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

docker run -p 9998:9998 apache/tika

์ด ๋ช…๋ น์€ Apache Tika ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆ์˜ ํฌํŠธ 9998์„ ๋กœ์ปฌ ๋จธ์‹ ์˜ ํฌํŠธ 9998์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

2. ์„œ๋ฒ„ ์‹คํ–‰ ์—ฌ๋ถ€ ํ™•์ธโ€‹

GET ์š”์ฒญ์„ ๋ณด๋‚ด Apache Tika ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

curl -X GET http://localhost:9998/tika

์ด ๋ช…๋ น์€ ๋‹ค์Œ ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

This is Tika Server. Please PUT

3. ํ†ตํ•ฉ ๊ฒ€์ฆโ€‹

๋˜๋Š” ํŒŒ์ผ์„ ๋ถ„์„์„ ์œ„ํ•ด ์ „์†กํ•˜์—ฌ ํ†ตํ•ฉ์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. curl ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ๋ถ„์„์„ ์œ„ํ•ด Apache Tika๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

curl -T test.txt http://localhost:9998/tika

๋กœ์ปฌ ๋จธ์‹ ์˜ ํ…์ŠคํŠธ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ test.txt ๋Œ€์‹  ์ž…๋ ฅํ•˜์„ธ์š”.

Apache Tika๋Š” ํŒŒ์ผ์˜ ๊ฐ์ง€๋œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ์ฝ˜ํ…์ธ  ์œ ํ˜•์œผ๋กœ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

Apache Tika๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์‚ฌ์šฉโ€‹

์ž๋™ํ™”๋œ ๊ฒ€์ฆ ํ”„๋กœ์„ธ์Šค๋ฅผ ์›ํ•˜์‹œ๋ฉด ์•„๋ž˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ํŒŒ์ผ์„ Apache Tika๋กœ ์ „์†กํ•˜๊ณ  ์‘๋‹ต ๋‚ด์—์„œ ๊ธฐ๋Œ€๋˜๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์Šคํฌ๋ฆฝํŠธ๋Š” ์„ฑ๊ณต ๋ฉ”์‹œ์ง€์™€ ํŒŒ์ผ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋ฉฐ, ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ Tika์˜ ์‘๋‹ต์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

import requests

def verify_tika(file_path, tika_url):
try:
# ํŒŒ์ผ์„ Apache Tika๋กœ ์ „์†กํ•˜๊ณ  ์ถœ๋ ฅ ํ™•์ธ
response = requests.put(tika_url, files={file: open(file_path, rb)})

if response.status_code == 200:
print("Apache Tika๊ฐ€ ํŒŒ์ผ์„ ์„ฑ๊ณต์ ์œผ๋กœ ๋ถ„์„ํ–ˆ์Šต๋‹ˆ๋‹ค.")
print("Apache Tika์˜ ์‘๋‹ต:")
print(response.text)
else:
print("ํŒŒ์ผ ๋ถ„์„ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ:")
print(f"์ƒํƒœ ์ฝ”๋“œ: {response.status_code}")
print(f"Apache Tika์˜ ์‘๋‹ต: {response.text}")
except Exception as e:
print(f"์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค: {e}")

if __name__ == "__main__":
file_path = "test.txt" # ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์—ฌ๊ธฐ์— ์ž…๋ ฅํ•˜์„ธ์š”
tika_url = "http://localhost:9998/tika"

verify_tika(file_path, tika_url)

์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ง€์นจ:

์ „์ œ ์กฐ๊ฑดโ€‹

  • Python 3.x๊ฐ€ ์‹œ์Šคํ…œ์— ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
  • requests ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์„ค์น˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค (pip ์‚ฌ์šฉ: pip install requests)
  • Apache Tika Docker ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰ ์ค‘์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค (๋ช…๋ น์–ด docker run -p 9998:9998 apache/tika ์‚ฌ์šฉ)
  • "test.txt"๋ฅผ Apache Tika์— ๋ณด๋‚ผ ํŒŒ์ผ ๊ฒฝ๋กœ๋กœ ๋ฐ”๊พธ์„ธ์š”

์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ํ•˜๊ธฐโ€‹

  1. ์Šคํฌ๋ฆฝํŠธ๋ฅผ verify_tika.py๋กœ ์ €์žฅํ•˜์„ธ์š” (์˜ˆ: Notepad ๋˜๋Š” Sublime Text์™€ ๊ฐ™์€ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅ)
  2. ํ„ฐ๋ฏธ๋„ ๋˜๋Š” ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๋ฅผ ์—ฝ๋‹ˆ๋‹ค
  3. ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ €์žฅํ•œ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค (cd ๋ช…๋ น์–ด ์‚ฌ์šฉ)
  4. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค: python verify_tika.py
  5. ์Šคํฌ๋ฆฝํŠธ๊ฐ€ Apache Tika๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค

์ฐธ๊ณ : ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Apache Tika ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•˜๊ณ  ํŒŒ์ผ์ด ์˜ฌ๋ฐ”๋ฅธ URL๋กœ ์ „์†ก๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

๊ฒฐ๋ก โ€‹

์œ„์˜ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด๋ฉด Docker ํ™˜๊ฒฝ์—์„œ Apache Tika๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด ๋ณด๋‚ด๋Š” ๊ฒƒ, GET ์š”์ฒญ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ์ž‘๋™ ์ค‘์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ ๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์Šคํฌ๋ฆฝํŠธ ํ™œ์šฉ์œผ๋กœ ์„ค์ •์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Apache Tika ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•˜๊ณ  ํŒŒ์ผ์ด ์˜ฌ๋ฐ”๋ฅธ URL๋กœ ์ „์†ก๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

๋ฌธ์ œ ํ•ด๊ฒฐโ€‹

  • Apache Tika ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์ด๋ฉฐ Open WebUI ์ธ์Šคํ„ด์Šค์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Docker ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜์—ฌ Apache Tika ์„œ๋น„์Šค์™€ ๊ด€๋ จ๋œ ์˜ค๋ฅ˜ ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
  • Open WebUI์—์„œ ์ปจํ…์ŠคํŠธ ์ถ”์ถœ ์—”์ง„ URL์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

ํ†ตํ•ฉ์˜ ์ด์ โ€‹

Apache Tika๋ฅผ Open WebUI์— ํ†ตํ•ฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • ํ–ฅ์ƒ๋œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”์ถœ: Apache Tika์˜ ๊ณ ๊ธ‰ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”์ถœ ๊ธฐ๋Šฅ์€ ํŒŒ์ผ์—์„œ ์ •ํ™•ํ•˜๊ณ  ๊ด€๋ จ์„ฑ ๋†’์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค์–‘ํ•œ ํŒŒ์ผ ํ˜•์‹ ์ง€์›: Apache Tika๋Š” ๊ด‘๋ฒ”์œ„ํ•œ ํŒŒ์ผ ํ˜•์‹์„ ์ง€์›ํ•˜๋ฏ€๋กœ ๋‹ค์–‘ํ•œ ํŒŒ์ผ ์œ ํ˜•์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์กฐ์ง์— ์ ํ•ฉํ•œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.
  • ํ–ฅ์ƒ๋œ ์ฝ˜ํ…์ธ  ๋ถ„์„: Apache Tika์˜ ๊ณ ๊ธ‰ ์ฝ˜ํ…์ธ  ๋ถ„์„ ๊ธฐ๋Šฅ์€ ํŒŒ์ผ์—์„œ ์œ ์šฉํ•œ ํ†ต์ฐฐ๋ ฅ์„ ์ถ”์ถœํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก โ€‹

Apache Tika๋ฅผ Open WebUI์— ํ†ตํ•ฉํ•˜๋Š” ๊ณผ์ •์€ ๊ฐ„๋‹จํ•˜๋ฉฐ Open WebUI ์ธ์Šคํ„ด์Šค์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”์ถœ ๊ธฐ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ์—์„œ ์„ค๋ช…ํ•œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด๋ฉด Open WebUI๋ฅผ ์œ„ํ•œ ์ปจํ…์ŠคํŠธ ์ถ”์ถœ ์—”์ง„์œผ๋กœ Apache Tika๋ฅผ ์‰ฝ๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.