From 8a4da414064babda27eb2c1a01974d399b38d196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Baki=20Burak=20=C3=96=C4=9F=C3=BCn?= <63836730+bakiburakogun@users.noreply.github.com> Date: Tue, 24 Mar 2026 14:00:48 +0300 Subject: [PATCH] docs: add Turkish README translation (README_tr.md) (#13750) ## Summary Add a complete Turkish translation of the README and include a Turkish language badge across all existing README files. ## Changes - **New file**: `README_tr.md` - Full Turkish translation of README.md, covering all sections (What is RAGFlow, Demo, Latest Updates, Key Features, System Architecture, Get Started, Configurations, Docker Image, Development from Source, Documentation, Roadmap, Community, Contributing) - **Updated 9 existing README files** (README.md, README_zh.md, README_tzh.md, README_ja.md, README_ko.md, README_id.md, README_pt_br.md, README_fr.md, README_ar.md) to include the Turkish language badge in the language selector ## Impact - 10 files changed, 417 insertions - Follows the same structure and conventions as other language-specific README files (README_ja.md, README_ko.md, etc.) - Turkish badge uses the same styling pattern (highlighted with DBEDFA in README_tr.md, standard DFE0E5 in others) --------- Co-authored-by: bakiburakogun --- README.md | 1 + README_ar.md | 1 + README_fr.md | 1 + README_id.md | 1 + README_ja.md | 1 + README_ko.md | 1 + README_pt_br.md | 1 + README_tr.md | 408 ++++++++++++++++++++++++++++++++++++++ README_tzh.md | 1 + README_zh.md | 1 + agent/plugin/README_tr.md | 99 +++++++++ deepdoc/README_tr.md | 136 +++++++++++++ 12 files changed, 652 insertions(+) create mode 100644 README_tr.md create mode 100644 agent/plugin/README_tr.md create mode 100644 deepdoc/README_tr.md diff --git a/README.md b/README.md index 2c51b038a0..740d8eeaf8 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ Português(Brasil) README en Français README in Arabic + Türkçe README

diff --git a/README_ar.md b/README_ar.md index 5ec56bc5f5..e2ad48a248 100644 --- a/README_ar.md +++ b/README_ar.md @@ -14,6 +14,7 @@ Português(Brasil) README en Français README in Arabic + Türkçe README

diff --git a/README_fr.md b/README_fr.md index b84958fa3d..ee4bd57614 100644 --- a/README_fr.md +++ b/README_fr.md @@ -14,6 +14,7 @@ Português(Brasil) README en Français README in Arabic + Türkçe README

diff --git a/README_id.md b/README_id.md index f0e737c2f7..5fa1d35f28 100644 --- a/README_id.md +++ b/README_id.md @@ -14,6 +14,7 @@ Português(Brasil) README en Français README in Arabic + Türkçe README

diff --git a/README_ja.md b/README_ja.md index 2f3d9d8abd..0bc558426f 100644 --- a/README_ja.md +++ b/README_ja.md @@ -14,6 +14,7 @@ Português(Brasil) README en Français README in Arabic + Türkçe README

diff --git a/README_ko.md b/README_ko.md index 9c935d1166..71c6800419 100644 --- a/README_ko.md +++ b/README_ko.md @@ -14,6 +14,7 @@ Português(Brasil) README en Français README in Arabic + Türkçe README

diff --git a/README_pt_br.md b/README_pt_br.md index 8ccf67090a..f6dff41382 100644 --- a/README_pt_br.md +++ b/README_pt_br.md @@ -14,6 +14,7 @@ Português(Brasil) README en Français README in Arabic + Türkçe README

diff --git a/README_tr.md b/README_tr.md new file mode 100644 index 0000000000..c38b5e5e10 --- /dev/null +++ b/README_tr.md @@ -0,0 +1,408 @@ +

+ +ragflow logo + +
+ +

+ README in English + 简体中文版自述文件 + 繁體版中文自述文件 + 日本語のREADME + 한국어 + Bahasa Indonesia + Português(Brasil) + README en Français + README in Arabic + Türkçe README +

+ +

+ + X(Twitter)'da takip et + + + Çevrimiçi Demo + + + docker pull infiniflow/ragflow:v0.24.0 + + + Son Sürüm + + + lisans + + + Ask DeepWiki + +

+ +

+ Dokümantasyon | + Yol Haritası | + Twitter | + Discord | + Demo +

+ +
+ +
+ +
+infiniflow%2Fragflow | Trendshift +
+ +
+📕 İçindekiler + +- 💡 [RAGFlow Nedir?](#-ragflow-nedir) +- 🎮 [Demo](#-demo) +- 📌 [Son Güncellemeler](#-son-güncellemeler) +- 🌟 [Temel Özellikler](#-temel-özellikler) +- 🔎 [Sistem Mimarisi](#-sistem-mimarisi) +- 🎬 [Başlarken](#-başlarken) +- 🔧 [Yapılandırmalar](#-yapılandırmalar) +- 🔧 [Docker İmajı Oluşturma](#-docker-i̇majı-oluşturma) +- 🔨 [Geliştirme İçin Kaynaktan Hizmet Başlatma](#-geliştirme-i̇çin-kaynaktan-hizmet-başlatma) +- 📚 [Dokümantasyon](#-dokümantasyon) +- 📜 [Yol Haritası](#-yol-haritası) +- 🏄 [Topluluk](#-topluluk) +- 🙌 [Katkıda Bulunma](#-katkıda-bulunma) + +
+ +## 💡 RAGFlow Nedir? + +[RAGFlow](https://ragflow.io/), derin doküman anlayışına dayalı, açık kaynaklı ve öncü bir Artırılmış Üretim ile Bilgi Erişimi ([RAG](https://ragflow.io/basics/what-is-rag)) motorudur. En son RAG teknolojisini Ajan yetenekleriyle birleştirerek LLM'ler için üstün bir bağlam katmanı oluşturur. Her ölçekteki kuruluşa uyarlanabilir, kolaylaştırılmış bir RAG iş akışı sunar. Yakınsanmış bir [bağlam motoru](https://ragflow.io/basics/what-is-agent-context-engine) ve hazır ajan şablonlarıyla donatılmış RAGFlow, geliştiricilerin karmaşık verileri yüksek doğrulukta, üretime hazır yapay zeka sistemlerine olağanüstü verimlilik ve hassasiyetle dönüştürmesini sağlar. + +## 🎮 Demo + +Demomuzu [https://cloud.ragflow.io](https://cloud.ragflow.io) adresinden deneyebilirsiniz. + +
+ + +
+ +## 🔥 Son Güncellemeler + +- 2025-12-26 Yapay zeka ajanı için 'Bellek' desteği eklendi. +- 2025-11-19 Gemini 3 Pro desteği eklendi. +- 2025-11-12 Confluence, S3, Notion, Discord, Google Drive'dan veri senkronizasyonu desteği eklendi. +- 2025-10-23 Doküman ayrıştırma yöntemi olarak MinerU ve Docling desteği eklendi. +- 2025-10-15 Düzenlenebilir veri alım hattı desteği eklendi. +- 2025-08-08 OpenAI'ın en yeni GPT-5 serisi modelleri için destek eklendi. +- 2025-08-01 Ajanlı iş akışı ve MCP desteği eklendi. +- 2025-05-23 Ajana Python/JavaScript kod çalıştırıcı bileşeni eklendi. +- 2025-05-05 Diller arası sorgu desteği eklendi. +- 2025-03-19 PDF veya DOCX dosyalarındaki görselleri yorumlamak için çok modlu model desteği eklendi. + +## 🎉 Bizi Takip Edin + +⭐️ Heyecan verici yeni özellikler ve iyileştirmelerden haberdar olmak için depomuzı yıldızlayın! Yeni sürümler için anında bildirim alın! 🌟 + +
+ +
+ +## 🌟 Temel Özellikler + +### 🍭 **"Kaliteli girdi, kaliteli çıktı"** + +- Karmaşık formatlara sahip yapılandırılmamış verilerden [derin doküman anlayışı](./deepdoc/README.md) tabanlı bilgi çıkarımı. +- Kelimenin tam anlamıyla sınırsız token içinde "samanlıkta iğne bulma" yeteneği. + +### 🍱 **Şablon tabanlı parçalama** + +- Akıllı ve açıklanabilir. +- Aralarından seçim yapabileceğiniz çok sayıda şablon seçeneği. + +### 🌱 **Azaltılmış halüsinasyonlarla temellendirilmiş alıntılar** + +- İnsan müdahalesine olanak tanıyan metin parçalama görselleştirmesi. +- Temellendirilmiş yanıtları desteklemek için anahtar referansların hızlı görüntülenmesi ve izlenebilir alıntılar. + +### 🍔 **Heterojen veri kaynaklarıyla uyumluluk** + +- Word, slaytlar, Excel, txt, görseller, taranmış kopyalar, yapılandırılmış veriler, web sayfaları ve daha fazlasını destekler. + +### 🛀 **Otomatik ve zahmetsiz RAG iş akışı** + +- Hem bireysel hem de büyük işletmeler için özelleştirilmiş kolaylaştırılmış RAG düzenlemesi. +- Yapılandırılabilir LLM'ler ve gömme (embedding) modelleri. +- Birleştirilmiş yeniden sıralama ile çoklu geri çağırma. +- İş süreçlerine sorunsuz entegrasyon için sezgisel API'ler. + +## 🔎 Sistem Mimarisi + +
+ +
+ +## 🎬 Başlarken + +### 📝 Ön Koşullar + +- CPU >= 4 çekirdek +- RAM >= 16 GB +- Disk >= 50 GB +- Docker >= 24.0.0 & Docker Compose >= v2.26.1 +- [gVisor](https://gvisor.dev/docs/user_guide/install/): Yalnızca RAGFlow'un kod çalıştırıcı (sandbox) özelliğini kullanmayı planlıyorsanız gereklidir. + +> [!TIP] +> Yerel makinenize (Windows, Mac veya Linux) Docker yüklemediyseniz, [Docker Engine Kurulumu](https://docs.docker.com/engine/install/) sayfasına bakın. + +### 🚀 Sunucuyu Başlatma + +1. `vm.max_map_count` değerinin >= 262144 olduğundan emin olun: + + > `vm.max_map_count` değerini kontrol etmek için: + > + > ```bash + > $ sysctl vm.max_map_count + > ``` + > + > Değer 262144'ten düşükse, en az 262144 olarak ayarlayın. + > + > ```bash + > # Bu örnekte 262144 olarak ayarlıyoruz: + > $ sudo sysctl -w vm.max_map_count=262144 + > ``` + > + > Bu değişiklik sistem yeniden başlatıldığında sıfırlanacaktır. Değişikliğin kalıcı olmasını sağlamak için + > **/etc/sysctl.conf** dosyasındaki `vm.max_map_count` değerini buna göre ekleyin veya güncelleyin: + > + > ```bash + > vm.max_map_count=262144 + > ``` + > +2. Depoyu klonlayın: + + ```bash + $ git clone https://github.com/infiniflow/ragflow.git + ``` +3. Önceden oluşturulmuş Docker imajlarını kullanarak sunucuyu başlatın: + +> [!CAUTION] +> Tüm Docker imajları x86 platformları için oluşturulmuştur. Şu anda ARM64 için Docker imajı sunmuyoruz. +> ARM64 platformundaysanız, sisteminizle uyumlu bir Docker imajı oluşturmak için [bu kılavuzu](https://ragflow.io/docs/dev/build_docker_image) takip edin. + +> Aşağıdaki komut RAGFlow Docker imajının `v0.24.0` sürümünü indirir. Farklı RAGFlow sürümleri için aşağıdaki tabloya bakın. `v0.24.0` dışında bir sürüm indirmek için, `docker compose` ile sunucuyu başlatmadan önce **docker/.env** dosyasındaki `RAGFLOW_IMAGE` değişkenini güncelleyin. + +```bash + $ cd ragflow/docker + + # git checkout v0.24.0 + # İsteğe bağlı: Kararlı bir etiket kullanın (sürümler: https://github.com/infiniflow/ragflow/releases) + # Bu adım, koddaki **entrypoint.sh** dosyasının Docker imaj sürümüyle eşleşmesini sağlar. + + # DeepDoc görevleri için CPU kullanımı: + $ docker compose -f docker-compose.yml up -d + + # DeepDoc görevlerini hızlandırmak için GPU kullanımı: + # sed -i '1i DEVICE=gpu' .env + # docker compose -f docker-compose.yml up -d +``` + +> Not: `v0.22.0` öncesinde hem gömme modelleri içeren imajlar hem de gömme modelleri içermeyen ince (slim) imajlar sunuyorduk. Detaylar aşağıdadır: + +| RAGFlow imaj etiketi | İmaj boyutu (GB) | Gömme modelleri var mı? | Kararlı mı? | +|-----------------------|-------------------|-------------------------|-----------------| +| v0.21.1 | ≈9 | ✔️ | Kararlı sürüm | +| v0.21.1-slim | ≈2 | ❌ | Kararlı sürüm | + +> `v0.22.0`'dan itibaren yalnızca ince (slim) sürümü sunuyoruz ve imaj etiketine artık **-slim** son eki eklemiyoruz. + +4. Sunucu çalışır duruma geldikten sonra sunucu durumunu kontrol edin: + + ```bash + $ docker logs -f docker-ragflow-cpu-1 + ``` + + _Aşağıdaki çıktı, sistemin başarıyla başlatıldığını onaylar:_ + + ```bash + + ____ ___ ______ ______ __ + / __ \ / | / ____// ____// /____ _ __ + / /_/ // /| | / / __ / /_ / // __ \| | /| / / + / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ / + /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/ + + * Running on all addresses (0.0.0.0) + ``` + + > Bu onay adımını atlayıp doğrudan RAGFlow'a giriş yaparsanız, o anda RAGFlow tam olarak başlatılmamış olabileceğinden + > tarayıcınız `ağ hatası` uyarısı verebilir. + > +5. Web tarayıcınıza sunucunuzun IP adresini girin ve RAGFlow'a giriş yapın. + + > Varsayılan ayarlarla, yalnızca `http://MAKİNENİZİN_IP_ADRESİ` girmeniz yeterlidir (port numarası **gerekmez**), + > çünkü varsayılan HTTP sunucu portu `80` varsayılan yapılandırmalar kullanıldığında ihmal edilebilir. + > +6. [service_conf.yaml.template](./docker/service_conf.yaml.template) dosyasında, `user_default_llm` içinde istediğiniz LLM sağlayıcısını seçin ve + `API_KEY` alanını ilgili API anahtarıyla güncelleyin. + + > Daha fazla bilgi için [llm_api_key_setup](https://ragflow.io/docs/dev/llm_api_key_setup) sayfasına bakın. + > + + _Gösteri başlasın!_ + +## 🔧 Yapılandırmalar + +Sistem yapılandırmaları söz konusu olduğunda, aşağıdaki dosyaları yönetmeniz gerekecektir: + +- [.env](./docker/.env): `SVR_HTTP_PORT`, `MYSQL_PASSWORD` ve `MINIO_PASSWORD` gibi temel sistem ayarlarını içerir. +- [service_conf.yaml.template](./docker/service_conf.yaml.template): Arka uç hizmetlerini yapılandırır. Bu dosyadaki ortam değişkenleri, Docker konteyneri başladığında otomatik olarak doldurulacaktır. Docker konteyneri içinde ayarlanan tüm ortam değişkenleri kullanıma hazır olacak ve hizmet davranışını dağıtım ortamına göre özelleştirmenize olanak tanıyacaktır. +- [docker-compose.yml](./docker/docker-compose.yml): Sistem, başlatılmak için [docker-compose.yml](./docker/docker-compose.yml) dosyasına dayanır. + +> [./docker/README](./docker/README.md) dosyası, [service_conf.yaml.template](./docker/service_conf.yaml.template) dosyasında `${ENV_VARS}` olarak kullanılabilen ortam ayarları ve hizmet yapılandırmalarının ayrıntılı bir açıklamasını sağlar. + +Varsayılan HTTP sunucu portunu (80) değiştirmek için [docker-compose.yml](./docker/docker-compose.yml) dosyasında `80:80` ifadesini `:80` olarak değiştirin. + +Yukarıdaki yapılandırma değişikliklerinin etkili olması için tüm konteynerlerin yeniden başlatılması gerekir: + +> ```bash +> $ docker compose -f docker-compose.yml up -d +> ``` + +### Doküman Motorunu Elasticsearch'ten Infinity'ye Geçirme + +RAGFlow varsayılan olarak tam metin ve vektörlerin depolanması için Elasticsearch kullanır. [Infinity](https://github.com/infiniflow/infinity/)'ye geçmek için şu adımları izleyin: + +1. Çalışan tüm konteynerleri durdurun: + + ```bash + $ docker compose -f docker/docker-compose.yml down -v + ``` + +> [!WARNING] +> `-v` seçeneği Docker konteyner birimlerini silecek ve mevcut veriler temizlenecektir. + +2. **docker/.env** dosyasında `DOC_ENGINE` değerini `infinity` olarak ayarlayın. +3. Konteynerleri başlatın: + + ```bash + $ docker compose -f docker-compose.yml up -d + ``` + +> [!WARNING] +> Linux/arm64 makinesinde Infinity'ye geçiş henüz resmi olarak desteklenmemektedir. + +## 🔧 Docker İmajı Oluşturma + +Bu imaj yaklaşık 2 GB boyutundadır ve harici LLM ile gömme hizmetlerine bağlıdır. + +```bash +git clone https://github.com/infiniflow/ragflow.git +cd ragflow/ +docker build --platform linux/amd64 -f Dockerfile -t infiniflow/ragflow:nightly . +``` + +Veya bir proxy arkasındaysanız, proxy parametrelerini iletebilirsiniz: + +```bash +docker build --platform linux/amd64 \ + --build-arg http_proxy=http://PROXY_ADRESINIZ:PORT \ + --build-arg https_proxy=http://PROXY_ADRESINIZ:PORT \ + -f Dockerfile -t infiniflow/ragflow:nightly . +``` + +## 🔨 Geliştirme İçin Kaynaktan Hizmet Başlatma + +1. `uv` ve `pre-commit` yükleyin veya zaten yüklüyse bu adımı atlayın: + + ```bash + pipx install uv pre-commit + ``` +2. Kaynak kodunu klonlayın ve Python bağımlılıklarını yükleyin: + + ```bash + git clone https://github.com/infiniflow/ragflow.git + cd ragflow/ + uv sync --python 3.12 # RAGFlow'un bağımlı Python modüllerini yükler + uv run download_deps.py + pre-commit install + ``` +3. Bağımlı hizmetleri (MinIO, Elasticsearch, Redis ve MySQL) Docker Compose kullanarak başlatın: + + ```bash + docker compose -f docker/docker-compose-base.yml up -d + ``` + + **docker/.env** dosyasında belirtilen tüm ana bilgisayar adlarını `127.0.0.1`'e çözümlemek için `/etc/hosts` dosyasına aşağıdaki satırı ekleyin: + + ``` + 127.0.0.1 es01 infinity mysql minio redis sandbox-executor-manager + ``` +4. HuggingFace'e erişemiyorsanız, bir ayna site kullanmak için `HF_ENDPOINT` ortam değişkenini ayarlayın: + + ```bash + export HF_ENDPOINT=https://hf-mirror.com + ``` +5. İşletim sisteminizde jemalloc yoksa, aşağıdaki şekilde yükleyin: + + ```bash + # Ubuntu + sudo apt-get install libjemalloc-dev + # CentOS + sudo yum install jemalloc + # OpenSUSE + sudo zypper install jemalloc + # macOS + sudo brew install jemalloc + ``` +6. Arka uç hizmetini başlatın: + + ```bash + source .venv/bin/activate + export PYTHONPATH=$(pwd) + bash docker/launch_backend_service.sh + ``` +7. Ön yüz bağımlılıklarını yükleyin: + + ```bash + cd web + npm install + ``` +8. Ön yüz hizmetini başlatın: + + ```bash + npm run dev + ``` + + _Aşağıdaki çıktı, sistemin başarıyla başlatıldığını onaylar:_ + + ![](https://github.com/user-attachments/assets/0daf462c-a24d-4496-a66f-92533534e187) +9. Geliştirme tamamlandıktan sonra RAGFlow ön yüz ve arka uç hizmetini durdurun: + + ```bash + pkill -f "ragflow_server.py|task_executor.py" + ``` + +## 📚 Dokümantasyon + +- [Hızlı Başlangıç](https://ragflow.io/docs/dev/) +- [Yapılandırma](https://ragflow.io/docs/dev/configurations) +- [Sürüm Notları](https://ragflow.io/docs/dev/release_notes) +- [Kullanıcı Kılavuzları](https://ragflow.io/docs/category/user-guides) +- [Geliştirici Kılavuzları](https://ragflow.io/docs/category/developer-guides) +- [Referanslar](https://ragflow.io/docs/dev/category/references) +- [SSS](https://ragflow.io/docs/dev/faq) + +## 📜 Yol Haritası + +[RAGFlow Yol Haritası 2026](https://github.com/infiniflow/ragflow/issues/12241) sayfasına bakın. + +## 🏄 Topluluk + +- [Discord](https://discord.gg/NjYzJD3GM3) +- [Twitter](https://twitter.com/infiniflowai) +- [GitHub Tartışmalar](https://github.com/orgs/infiniflow/discussions) + +## 🙌 Katkıda Bulunma + +RAGFlow, açık kaynak iş birliği sayesinde gelişmektedir. Bu anlayışla, topluluktan gelen çeşitli katkıları benimsiyoruz. +Bir parçası olmak istiyorsanız, önce [Katkıda Bulunma Kılavuzumuzu](https://ragflow.io/docs/dev/contributing) inceleyin. diff --git a/README_tzh.md b/README_tzh.md index e9857d9c26..e6d540f258 100644 --- a/README_tzh.md +++ b/README_tzh.md @@ -14,6 +14,7 @@ Português(Brasil) README en Français README in Arabic + Türkçe README

diff --git a/README_zh.md b/README_zh.md index 16119b01c9..dfa2c321b4 100644 --- a/README_zh.md +++ b/README_zh.md @@ -14,6 +14,7 @@ Português(Brasil) README en Français README in Arabic + Türkçe README

diff --git a/agent/plugin/README_tr.md b/agent/plugin/README_tr.md new file mode 100644 index 0000000000..7b345216e8 --- /dev/null +++ b/agent/plugin/README_tr.md @@ -0,0 +1,99 @@ +[English](./README.md) | [简体中文](./README_zh.md) | Türkçe + +# Eklentiler + +Bu klasör, RAGFlow'un eklenti mekanizmasını içerir. + +RAGFlow, `embedded_plugins` alt klasöründen eklentileri özyinelemeli olarak yükleyecektir. + +## Desteklenen eklenti türleri + +Şu anda desteklenen tek eklenti türü `llm_tools`'dur. + +- `llm_tools`: LLM'nin çağırması için bir araç. + +## Eklenti nasıl eklenir + +Bir LLM araç eklentisi eklemek basittir: bir eklenti dosyası oluşturun, içine `LLMToolPlugin` sınıfından türetilmiş bir sınıf koyun, ardından `get_metadata` ve `invoke` metodlarını uygulayın. + +- `get_metadata` metodu: Bu metod, aracın açıklamasını içeren bir `LLMToolMetadata` nesnesi döndürür. +Açıklama, LLM'ye çağrı için ve RAGFlow web ön yüzüne görüntüleme amacıyla sağlanacaktır. + +- `invoke` metodu: Bu metod, LLM tarafından üretilen parametreleri kabul eder ve aracın yürütme sonucunu içeren bir `str` döndürür. +Bu aracın tüm yürütme mantığı bu metoda konulmalıdır. + +RAGFlow'u başlattığınızda, günlükte eklentinizin yüklendiğini göreceksiniz: + +``` +2025-05-15 19:29:08,959 INFO 34670 Recursively importing plugins from path `/some-path/ragflow/agent/plugin/embedded_plugins` +2025-05-15 19:29:08,960 INFO 34670 Loaded llm_tools plugin BadCalculatorPlugin version 1.0.0 +``` + +Veya eklentinizi düzeltmeniz gereken hatalar da içerebilir. + +### Örnek + +Yanlış cevaplar veren bir hesap makinesi aracı ekleyerek eklenti ekleme sürecini göstereceğiz. + +Önce, `embedded_plugins/llm_tools` klasörü altında `bad_calculator.py` adında bir eklenti dosyası oluşturun. + +Ardından, `LLMToolPlugin` temel sınıfından türetilmiş bir `BadCalculatorPlugin` sınıfı oluşturuyoruz: + +```python +class BadCalculatorPlugin(LLMToolPlugin): + _version_ = "1.0.0" +``` + +`_version_` alanı zorunludur ve eklentinin sürüm numarasını belirtir. + +Hesap makinemizin girdileri olarak `a` ve `b` olmak üzere iki sayısı vardır, bu yüzden `BadCalculatorPlugin` sınıfımıza aşağıdaki `invoke` metodunu ekliyoruz: + +```python +def invoke(self, a: int, b: int) -> str: + return str(a + b + 100) +``` + +`invoke` metodu LLM tarafından çağrılacaktır. Birçok parametreye sahip olabilir, ancak dönüş tipi `str` olmalıdır. + +Son olarak, LLM'ye `bad_calculator` aracımızı nasıl kullanacağını anlatmak için bir `get_metadata` metodu eklememiz gerekiyor: + +```python +@classmethod +def get_metadata(cls) -> LLMToolMetadata: + return { + # Bu aracın adı, LLM'ye sağlanır + "name": "bad_calculator", + # Bu aracın görüntüleme adı, RAGFlow ön yüzüne sağlanır + "displayName": "$t:bad_calculator.name", + # Bu aracın kullanım açıklaması, LLM'ye sağlanır + "description": "A tool to calculate the sum of two numbers (will give wrong answer)", + # Bu aracın açıklaması, RAGFlow ön yüzüne sağlanır + "displayDescription": "$t:bad_calculator.description", + # Bu aracın parametreleri + "parameters": { + # Birinci parametre - a + "a": { + # Parametre tipi, seçenekler: number, string veya LLM'nin tanıyabileceği herhangi bir tip + "type": "number", + # Bu parametrenin açıklaması, LLM'ye sağlanır + "description": "The first number", + # Bu parametrenin açıklaması, RAGFlow ön yüzüne sağlanır + "displayDescription": "$t:bad_calculator.params.a", + # Bu parametrenin zorunlu olup olmadığı + "required": True + }, + # İkinci parametre - b + "b": { + "type": "number", + "description": "The second number", + "displayDescription": "$t:bad_calculator.params.b", + "required": True + } + } +``` + +`get_metadata` metodu bir `classmethod`'dur. Bu aracın açıklamasını LLM'ye sağlayacaktır. + +`display` ile başlayan alanlar özel bir gösterim kullanabilir: `$t:xxx`, bu gösterim RAGFlow ön yüzündeki uluslararasılaştırma (i18n) mekanizmasını kullanarak `llmTools` kategorisinden metin alır. Bu gösterimi kullanmazsanız, ön yüz buraya yazdığınız metni doğrudan gösterecektir. + +Artık aracımız hazırdır. `Yanıt Üret` bileşeninde seçip deneyebilirsiniz. diff --git a/deepdoc/README_tr.md b/deepdoc/README_tr.md new file mode 100644 index 0000000000..434a4cce3f --- /dev/null +++ b/deepdoc/README_tr.md @@ -0,0 +1,136 @@ +[English](./README.md) | [简体中文](./README_zh.md) | Türkçe + +# *Deep*Doc + +- [*Deep*Doc](#deepdoc) + - [1. Giriş](#1-giriş) + - [2. Görsel İşleme](#2-görsel-i̇şleme) + - [3. Ayrıştırıcı](#3-ayrıştırıcı) + - [Özgeçmiş](#özgeçmiş) + + +## 1. Giriş + +Farklı alanlardan, farklı formatlarda ve farklı erişim gereksinimleriyle gelen çok sayıda doküman için doğru bir analiz son derece zorlu bir görev haline gelmektedir. *Deep*Doc tam bu amaç için doğmuştur. Şu ana kadar *Deep*Doc'ta iki bileşen bulunmaktadır: görsel işleme ve ayrıştırıcı. OCR, yerleşim tanıma ve TSR sonuçlarımızla ilgileniyorsanız aşağıdaki test programlarını çalıştırabilirsiniz. + +```bash +python deepdoc/vision/t_ocr.py -h +usage: t_ocr.py [-h] --inputs INPUTS [--output_dir OUTPUT_DIR] + +options: + -h, --help show this help message and exit + --inputs INPUTS Directory where to store images or PDFs, or a file path to a single image or PDF + --output_dir OUTPUT_DIR + Directory where to store the output images. Default: './ocr_outputs' +``` + +```bash +python deepdoc/vision/t_recognizer.py -h +usage: t_recognizer.py [-h] --inputs INPUTS [--output_dir OUTPUT_DIR] [--threshold THRESHOLD] [--mode {layout,tsr}] + +options: + -h, --help show this help message and exit + --inputs INPUTS Directory where to store images or PDFs, or a file path to a single image or PDF + --output_dir OUTPUT_DIR + Directory where to store the output images. Default: './layouts_outputs' + --threshold THRESHOLD + A threshold to filter out detections. Default: 0.5 + --mode {layout,tsr} Task mode: layout recognition or table structure recognition +``` + +Modellerimiz HuggingFace üzerinden sunulmaktadır. HuggingFace modellerini indirmekte sorun yaşıyorsanız, bu yardımcı olabilir! + +```bash +export HF_ENDPOINT=https://hf-mirror.com +``` + + +## 2. Görsel İşleme + +İnsanlar olarak sorunları çözmek için görsel bilgiyi kullanırız. + + - **OCR (Optik Karakter Tanıma)**. Birçok doküman görsel olarak sunulduğundan veya en azından görsele dönüştürülebildiğinden, OCR metin çıkarımı için çok temel, önemli ve hatta evrensel bir çözümdür. + ```bash + python deepdoc/vision/t_ocr.py --inputs=gorsel_veya_pdf_yolu --output_dir=sonuc_klasoru + ``` + Girdi, görseller veya PDF'ler içeren bir dizin ya da tek bir görsel veya PDF dosyası olabilir. + Sonuçların konumlarını gösteren görsellerin ve OCR metnini içeren txt dosyalarının bulunduğu `sonuc_klasoru` klasörüne bakabilirsiniz. +

+ +
+ + - **Yerleşim Tanıma (Layout Recognition)**. Farklı alanlardan gelen dokümanlar farklı yerleşimlere sahip olabilir; gazete, dergi, kitap ve özgeçmiş gibi dokümanlar yerleşim açısından birbirinden farklıdır. Yalnızca makine doğru bir yerleşim analizi yapabildiğinde, metin parçalarının ardışık olup olmadığına, bu parçanın Tablo Yapısı Tanıma (TSR) ile mi işlenmesi gerektiğine veya bu parçanın bir şekil olup bu başlıkla mı açıklandığına karar verebilir. + Çoğu durumu kapsayan 10 temel yerleşim bileşenimiz vardır: + - Metin + - Başlık + - Şekil + - Şekil açıklaması + - Tablo + - Tablo açıklaması + - Üst bilgi + - Alt bilgi + - Referans + - Denklem + + Yerleşim algılama sonuçlarını görmek için aşağıdaki komutu deneyin. + ```bash + python deepdoc/vision/t_recognizer.py --inputs=gorsel_veya_pdf_yolu --threshold=0.2 --mode=layout --output_dir=sonuc_klasoru + ``` + Girdi, görseller veya PDF'ler içeren bir dizin ya da tek bir görsel veya PDF dosyası olabilir. + Aşağıdaki gibi algılama sonuçlarını gösteren görsellerin bulunduğu `sonuc_klasoru` klasörüne bakabilirsiniz: +
+ +
+ + - **TSR (Tablo Yapısı Tanıma)**. Veri tablosu, sayılar veya metin dahil verileri sunmak için sıklıkla kullanılan bir yapıdır. Bir tablonun yapısı; hiyerarşik başlıklar, birleştirilmiş hücreler ve yansıtılmış satır başlıkları gibi çok karmaşık olabilir. TSR'nin yanı sıra, içeriği LLM tarafından iyi anlaşılabilecek cümlelere dönüştürüyoruz. + TSR görevi için beş etiketimiz vardır: + - Sütun + - Satır + - Sütun başlığı + - Yansıtılmış satır başlığı + - Birleştirilmiş hücre + + Algılama sonuçlarını görmek için aşağıdaki komutu deneyin. + ```bash + python deepdoc/vision/t_recognizer.py --inputs=gorsel_veya_pdf_yolu --threshold=0.2 --mode=tsr --output_dir=sonuc_klasoru + ``` + Girdi, görseller veya PDF'ler içeren bir dizin ya da tek bir görsel veya PDF dosyası olabilir. + Algılama sonuçlarını gösteren görsellerin ve HTML sayfalarının bulunduğu `sonuc_klasoru` klasörüne bakabilirsiniz: +
+ +
+ + - **Tablo Otomatik Döndürme**. Tabloların yanlış yönde olabileceği (90°, 180° veya 270° döndürülmüş) taranmış PDF'ler için, PDF ayrıştırıcısı tablo yapısı tanıma işleminden önce en iyi döndürme açısını OCR güven puanlarını kullanarak otomatik olarak algılar. Bu, döndürülmüş tablolar için OCR doğruluğunu ve tablo yapısı algılamasını önemli ölçüde artırır. + + Özellik 4 döndürme açısını (0°, 90°, 180°, 270°) değerlendirir ve en yüksek OCR güvenine sahip olanı seçer. En iyi yönlendirmeyi belirledikten sonra, doğru döndürülmüş tablo görseli üzerinde OCR'yi yeniden gerçekleştirir. + + Bu özellik **varsayılan olarak etkindir**. Ortam değişkeni ile kontrol edebilirsiniz: + ```bash + # Tablo otomatik döndürmeyi devre dışı bırak + export TABLE_AUTO_ROTATE=false + + # Tablo otomatik döndürmeyi etkinleştir (varsayılan) + export TABLE_AUTO_ROTATE=true + ``` + + Veya API parametresi ile: + ```python + from deepdoc.parser import PdfParser + + parser = PdfParser() + # Bu çağrı için otomatik döndürmeyi devre dışı bırak + boxes, tables = parser(pdf_path, auto_rotate_tables=False) + ``` + + +## 3. Ayrıştırıcı + +PDF, DOCX, EXCEL ve PPT olmak üzere dört doküman formatının kendine özgü ayrıştırıcısı vardır. En karmaşık olanı, PDF'nin esnekliği nedeniyle PDF ayrıştırıcısıdır. PDF ayrıştırıcısının çıktısı şunları içerir: + - PDF'deki konumlarıyla birlikte metin parçaları (sayfa numarası ve dikdörtgen konumları). + - PDF'den kırpılmış görsel ve doğal dil cümlelerine çevrilmiş içerikleriyle tablolar. + - Açıklama ve şekil içindeki metinlerle birlikte şekiller. + +### Özgeçmiş + +Özgeçmiş çok karmaşık bir doküman türüdür. Çeşitli yerleşimlere sahip yapılandırılmamış metinden oluşan bir özgeçmiş, yaklaşık yüz alanı kapsayan yapılandırılmış veriye dönüştürülebilir. +Ayrıştırıcıyı henüz açık kaynak olarak yayınlamadık; ayrıştırma prosedüründen sonraki işleme yöntemini açık kaynak olarak sunmaktayız.