Contextator
ENTR

Başlangıç

Yapılandırma

Contextator'ın okuduğu her ortam değişkeni — sunucu, hesaplar, veritabanı, depolama, belgeler, yüklemeler, gömme, arama, senkronizasyon, gözlemlenebilirlik, reverse proxy.

Güncelleme:

Her şey bir ortam değişkenidir. Compose ile bunları docker-compose.yml’in yanındaki .env’e koyarsınız; birlikte gelen .env.example açıklamalı tam listedir.

Yapılandırma başlangıçta doğrulanır. Bir şey yanlışsa sunucu her sorunu yazdırır ve yarı çalışır bir durumda başlamak yerine çıkar.


Sunucu

Değişken Varsayılan Ne yapar
PORT 3444 Uygulamanın dinlediği port
HOST 0.0.0.0 Konteynerin içindeki bağlanma adresi. Bunu olduğu gibi bırakın — dışarıdan neyin erişilebilir olduğunu kontrol eden ayar bu değildir; o, aşağıdaki CONTEXTATOR_BIND’dır. Docker, yayınlanan bir portu yalnızca konteynerin kendi loopback’ine bağlı bir sürece iletemez
CONTEXTATOR_BIND 127.0.0.1 docker compose’un portu hangi host arayüzünde yayınladığı (yalnızca Compose — uygulamanın kendisi bunu hiç okumaz). Varsayılan, yalnızca bu makinede ve başka hiçbir yerde yanıt verir. 0.0.0.0 her arayüzde yayınlar — bunu yalnızca önünde bir reverse proxy ya da bir VPN varken yapın, ve TRUST_PROXY ile PUBLIC_BASE_URL’i buna uydurun; aşağıda Bir reverse proxy arkasında çalışmak’a bakın
LOG_LEVEL info fatal…trace. İstek başına loglama debug’da açılır
PUBLIC_BASE_URL – Örn. https://docs.example.com. Panoda gösterilen URL’ler için, ve — bir proxy arkasındayken — MCP connector’larının okuduğu OAuth metadata’sı için kullanılır. Bkz. Bir reverse proxy arkasında çalışmak
TRUST_PROXY 0 Hangi eşlerin bu sunucuya bir isteğin nereden geldiğini söyleyebileceği. req.ip’i (IP başına oturum açma sınırı, /oauth/register’ın host başına bütçesi, bir audit olayının yanındaki adres) ve req.protocol’ü belirler. 0, X-Forwarded-*’ı tamamen göz ardı eder, ki bu, önünde hiçbir şey olmayan gönderilen Compose şekli için doğrudur. Gerçek bir proxy arkasında bu ayarlanmalıdır — aşağıda Bir reverse proxy arkasında çalışmak’a bakın
ALLOWED_ORIGINS – /mcp/*’i çağırmasına izin verilen, virgülle ayrılmış tarayıcı origin’leri. Tarayıcı olmayan istemcilere her zaman izin verilir
SESSION_IDLE_TTL_MS 1800000 Boşta kalan Streamable HTTP transport oturumları 30 dakika sonra kapatılır. Pano oturum açmaları ayrıdır — o AUTH_SESSION_IDLE_MS’tir
MCP_STRUCTURED_OUTPUT 0 1, MCP araçlarının değişmeyen metnin yanında bir outputSchema yayınlamasını ve structuredContent döndürmesini sağlar. Varsayılan olarak kapalıdır, çünkü bir sonuç bunu taşıdığı anda Claude Code metin yerine yapılandırılmış içeriği okur — bkz. MCP Araçları

Hesaplar ve oturumlar

İnsanlar panoya kendi hesaplarıyla oturum açar; bu ayarlar bunun nasıl işlediğini şekillendirir. Bkz. Hesaplar ve İzinler.

Değişken Varsayılan Ne yapar
SETUP_CODE – İlk hesap var olmadan önce /setup’ın istediği tek seferlik kod. Ayarlarsanız onu asla logdan okumak zorunda kalmazsınız; boş bırakırsanız sunucu bir tane üretir ve o hesap oluşturulana kadar her başlatmada yazdırır. O andan sonra göz ardı edilir. Kontrol edilirken büyük/küçük harf, tire ve noktalama göz ardı edilir, bu yüzden noktalamaya güvenmek yerine yeterince harf ve rakam verin
ADMIN_TOKEN – Authorization: Bearer … üzerinden /api/*’e, root izinleriyle davranan makine erişimi — betikler ve CI için. Tarayıcılar bunun yerine bir hesapla oturum açar; bunu bir root parolası gibi görün ve asla birinin içine yapıştırmayın. /mcp/*’i korumaz
AUTH_SESSION_IDLE_MS 43200000 (12 sa) Bu kadar süre kullanılmayan bir pano oturumu yeniden oturum açmalıdır. Pano kullanımdayken yenilenir
AUTH_SESSION_TTL_DAYS 30 Ne kadar aktif kullanılırsa kullanılsın bir oturumun ömrünün sert tavanı. AUTH_SESSION_IDLE_MS’ten kısa olmamalıdır
AUTH_COOKIE_SECURE auto auto, istek HTTPS üzerinden geldiğinde Secure bayrağını ayarlar. TLS’i sonlandıran bir proxy arkasında 1 ile zorlayın; düz-HTTP bir LAN kurulumu için 0 kullanın, yoksa tarayıcı çerezi düşürür ve oturum açma /login’e geri döner
AUTH_LOGIN_MAX_ATTEMPTS 10 Bir kilitlenme ya da 429 öncesi, hesap başına ve IP adresi başına başarısız oturum açma sayısı
AUTH_LOGIN_WINDOW_MIN 15 Dakika cinsinden IP penceresi ve hesap kilitlenmesinin ilk adımı — buradan itibaren ikiye katlanır, bir saatte tavanlanır
PASSWORD_MIN_LENGTH 12 Geçici olanlar dahil her parolaya uygulanır. Hiçbir kompozisyon kuralı dayatılmaz
MCP_OAUTH 1 Bir istemcinin /mcp/* üzerinde bir hesap adına davranmasını sağlayan OAuth 2.1 akışı. 0 onu kaldırır; o zaman kapalı bir projeyi yalnızca statik tokenlar açar ve tarayıcı tabanlı connector’lar hiç bağlanamaz
MCP_OAUTH_ACCESS_TTL_MIN 60 Bir connector’a verilen tek bir access token’ın ömrü
MCP_OAUTH_REFRESH_TTL_DAYS 30 Bu süre boyunca kullanılmayan bir connector’ın yeniden yetkilendirilmesi gerekir

Federe oturum açma (OIDC_ISSUER_URL ve geri kalan OIDC_* değişkenleri) kendi sayfasıdır — bkz. Tek Oturum Açma.

Veritabanı

Değişken Varsayılan Ne yapar
POSTGRES_PASSWORD contextator Gömülü PostgreSQL’in parolası. Küme ilk oluşturulduğunda uygulanır; sonradan değiştirmek ALTER USER gerektirir — bkz. Yedekleme ve Veri
DATABASE_URL – Yalnızca yerel geliştirme. Konteyner onu göz ardı eder ve kendi gömülü PostgreSQL’iyle konuşur
RESET_VECTORS 0 Gömme boyutlarını değiştirirken tek seferlik yıkıcı sıfırlama — bkz. Gömme Modelleri

Depolama (yalnızca Compose)

Değişken Varsayılan Ne yapar
CONTEXTATOR_PGDATA_VOLUME contextator-pgdata Veritabanı için volume adı
CONTEXTATOR_MODELS_VOLUME contextator-models İndirilen modeller için volume adı
CONTEXTATOR_DATA_VOLUME contextator-data Somutlaştırılmış kaynaklar için volume adı
CONTEXTATOR_PGDATA_PATH – Yukarıdaki volume yerine kullanılan mutlak host dizini
CONTEXTATOR_MODELS_PATH – Modeller için aynısı
CONTEXTATOR_DATA_PATH – Somutlaştırılmış kaynaklar için aynısı
DOCS_HOST_PATH ./docs /docs’a salt okunur bağlanan host klasörü

Örnekler:

CONTEXTATOR_PGDATA_PATH=/srv/contextator/pgdata     # Linux: veritabanını seçtiğiniz bir diskte tutun
CONTEXTATOR_MODELS_PATH=D:/contextator/models       # Windows host dizini (ileri eğik çizgiler)
CONTEXTATOR_PGDATA_VOLUME=contextator-pgdata-v2     # ya da yalnızca başka adlı bir volume

Belgeler

Değişken Varsayılan Ne yapar
ALLOWED_DOC_ROOTS /docs Virgülle ayrılmış. Bir yerel klasör kaynağı bunlardan birinin içinde yaşamak zorundadır. Bu gerçek bir güvenlik sınırıdır — bkz. Güvenlik
IGNORE_GLOBS – İndeksleme sırasında atlanan, virgülle ayrılmış glob’lar, ör. **/CHANGELOG.md,drafts/**. Her kaynağa uygulanır
DATA_DIR .data (konteynerde /data) Git checkout’larını, yüklemeleri ve Notion çekimlerini tutan yazılabilir dizin
SECRET_KEY – En az 32 karakter (openssl rand -hex 32). Git, Notion ve Confluence token’larını ve webhook secret’larını beklemede şifreler (AES-256-GCM). Yalnızca böyle bir kaynak var olduğunda gerekir. Onu tek başına değiştirmek saklanan her token’ı okunamaz bırakır — bunun yerine rotate edin: emekliye ayrılan anahtarı SECRET_KEY_PREVIOUS’a, yeni anahtarı SECRET_KEY’e ayarlayın, yeniden başlatın, npm run rotate-secret’i çalıştırın, sonra SECRET_KEY_PREVIOUS’ı kaldırıp yeniden başlatın. Güvenlik sayfasındaki rotate runbook’una bakın
SECRET_KEY_PREVIOUS – Yalnızca bir rotate işleminin (yukarıda) süresi boyunca ayarlanan, emekliye ayrılan anahtar. Hiçbir zaman şifrelemez — okumalar ona geri döner, her yazma SECRET_KEY’i kullanır
CONFLUENCE_ALLOWED_HOSTS – Bir Confluence kaynağının özel bir adreste (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fc00::/7) erişebileceği, virgülle ayrılmış host adları (ya da IP literalleri), ör. wiki.corp.example. İç ağdaki bir Data Center örneği için gereklidir; loopback, link-local (169.254.169.254 dahil), belirtilmemiş ve multicast adresler ne listelenirse listelensin reddedilmeye devam eder. Bağlanılan adreste ve her yönlendirmede yeniden kontrol edilir (ADR-0088). Bkz. Confluence
MAX_STORED_DOCUMENT_BYTES 1048576 (1 MB) read_document için her belgenin metninin ne kadarının veritabanında tutulduğu. Bunun ötesinde önek saklanır ve araç bunu söyler. PostgreSQL tarafından satır dışında sıkıştırılır, bu yüzden maliyet aynı belgenin vektörlerinin küçük bir kesridir
MAX_CONVERTED_FILE_BYTES 33554432 (32 MiB) Dosya okunmadan önce, taramanın kaydettiği boyuta karşı kontrol edilir, bu yüzden bir sınır asla belleğe zaten alınmış byte’lara uygulanmaz. .md, .mdx ve .txt ayrıştırılmak yerine çözülür ve sınırlanmaz
MAX_PDF_PAGES 2000 Her sayfa tek seferde belleğe okunmadan önce, bundan daha fazla sayfa bildiren bir PDF’i reddeder
MAX_DOCX_UNPACKED_BYTES 268435456 (256 MiB) Bir .docx, dizini yazarının yazdığı bir boyutu raporladığı bir zip’tir; her parça bir sayaç üzerinden şişirilir ve bu tavan aşıldığında atılır, ki bir zip bomb’unu gerçekten sınırlayan da budur
CONVERSION_TIMEOUT_MS 120000 (2 dk) Bunun ötesinde hâlâ dönüştürülmekte olan bir dosya, okunamayan bir PDF gibi adıyla reddedilir; worker thread değiştirilir ve çalışma devam eder
CONVERSION_IDLE_MS 60000 (1 dk) Dönüştürme worker thread’i dosyalar arasında sıcak tutulur ve bu kadar boşta kaldıktan sonra düşürülür, bu yüzden sessiz bir sunucu büyük bir belgenin büyüttüğü heap’i tutmaya devam etmez

Yüklemeler

Değişken Varsayılan Ne yapar
UPLOAD_MAX_FILE_BYTES 52428800 (50 MB) Yüklenen dosya başına
UPLOAD_MAX_FILES_PER_REQUEST 500 Pano büyük klasörleri isteklere kendiliğinden böler
UPLOAD_MAX_ARCHIVE_BYTES 268435456 (256 MB) Yüklenen arşiv başına
ARCHIVE_MAX_ENTRIES 20000 Ayıklama sırasında uygulanan koruma
ARCHIVE_MAX_TOTAL_BYTES 1073741824 (1 GB) Ayıklama sırasında uygulanan koruma

Gömme

Değişken Varsayılan Ne yapar
EMBEDDING_PROVIDER local local (CPU, API anahtarı yok) ya da openai
EMBEDDING_MODEL Xenova/multilingual-e5-small Herhangi bir transformers.js feature-extraction modeli. Önceki varsayılan, yalnızca 128 token okur: Xenova/paraphrase-multilingual-MiniLM-L12-v2. Yalnızca İngilizce ve daha hızlı: Xenova/all-MiniLM-L6-v2. Üçü de 384 boyutludur
EMBEDDING_DIMENSIONS 384 Modelle eşleşmelidir. text-embedding-3-small için 1536
EMBEDDING_DTYPE fp32 q8, ~4× daha küçük nicelenmiş bir model indirir
EMBEDDING_BATCH_SIZE 16 Batch başına gömülen parça sayısı
MODEL_CACHE_DIR .cache/models Konteynerin içinde /app/.cache/models
EMBEDDING_OFFLINE 0 1, model indirmelerini yasaklar (önceden doldurulmuş önbelleğe sahip hava boşluklu makineler)
OPENAI_API_KEY – Sağlayıcı openai olduğunda gerekir
OPENAI_EMBEDDING_MODEL text-embedding-3-small
EMBEDDING_MAX_INPUT_TOKENS – Modelin kullanışlı biçimde okuduğu — tokenizer’ının kestiği yer değil, eğitildiği pencere. Boş bırakılırsa sunucu bunu yüklü modelden keşfeder ve CHUNK_MAX_TOKENS sığmıyorsa başlatma sonrası uyarır; ayarlanırsa bu keşfin yerini alır, ve çelişen bir CHUNK_MAX_TOKENS başlamayı reddeder
EMBEDDING_QUERY_PREFIX / EMBEDDING_PASSAGE_PREFIX – Modelin eğitildiği talimat önekleri, sunucu tarafından eklenir, asla sizin tarafınızdan değil. Boş bırakmak modelin karar vermesi anlamına gelir: multilingual-e5-* için query: / passage: , başka her şey için hiçbiri. Sondaki boşluk önemlidir ve .env tırnaksız bir tanesini siler, bu yüzden EMBEDDING_QUERY_PREFIX="query: " yazın. Boş bir değer önek yok değil ayarlanmamış olarak okunur — önekleri olan bir modelde önek yok demenin yolu none’dır. Her iki değer de model id’sinin parçasıdır: birini değiştirmek, tıpkı EMBEDDING_MODEL’i değiştirmek gibi, her projeyi yeniden indeksler. Bkz. Gömme Modelleri
SEARCH_SCORE_FLOOR 0.82 Altında search_docs’un en iyi sonucunu vermek yerine iyi eşleşme yok dediği cosine similarity. 0 kapatır. Varsayılan embedding modeline karşı ölçülmüştür ve başka bir modelde anlamsızdır

Arama ve sıralama

Vektör indeksi için ince ayar ve bir yanıtın kendi isabetlerinden nasıl bir araya getirildiği. Varsayılanlar, altın kümenin en iyi ölçtükleridir; bunların geldiği kıyaslama için bkz. İndeksleme Nasıl Çalışır.

Değişken Varsayılan Ne yapar
HNSW_EF_SEARCH 100 Üretim filtresi uygulanmadan önce vektör indeksinin ürettiği aday sayısı — pgvector’ın kendi varsayılanı 40’tır. Her projenin kendi kısmi indeksi vardır, bu yüzden adaylar o projenin satırlarıdır; bir proje yeniden indekslenirken, bir sonraki üretimi aynı indekste durur ve sonradan filtrelenir. Her aramada gecikmeye mal olur
HNSW_ITERATIVE_SCAN relaxed_order relaxed_order, strict_order ya da off. Filtre istenenden daha az isabet bıraktığında kısa yanıt vermek yerine taramaya devam eder (pgvector 0.8+; daha eski bir sürümde üç ayar da göz ardı edilir ve arama eskisi gibi davranır). relaxed_order, satırları sırasız döndürür ve sunucu onları kendisi sıralar
HNSW_MAX_SCAN_TUPLES 20000 Yinelemeli bir taramayı gerçekten bitiren tavan, projenin kendi indeksinin tuple’larıyla sayılır. Bir örnek büyüdükçe değil, bir proje büyüdükçe yükseltin
SEARCH_MAX_PER_DOCUMENT 2 Bir belgenin bir yanıta katkıda bulunabileceği alıntı sayısı, sıralamadan sonra uygulanır ve altındaki alıntılardan yeniden doldurulur, bu yüzden beş isteyen bir agent yine de beş alır. Altın kümede ölçüldüğünde bir soru kazandırır — düşürdüğü şey sayfada zaten olan bir şeyin neredeyse birebir kopyasıdır. 20 kapatır
SEARCH_NEIGHBOR_CONTEXT 1 Her isabetin iki yanındaki parçalar, daha fazla sonuç olarak değil, onun çevresinde bağlam olarak gösterilir. 0 kapatır. Bir parça CHUNK_MAX_TOKENS’tır, bu yüzden bir yanındaki, eskiden bir isabetin kullandığı bağlamın yaklaşık üç katıdır
SEARCH_MAX_RESULT_CHARS 12000 Tek bir render edilmiş search_docs yanıtının tavanı; bunun ötesinde bütün alıntılar düşürülür ve sonuç kaç tanesinin düştüğünü söyler. Varsayılan bir yanıt yaklaşık 3.300 karakterdir

Senkronizasyon

Değişken Varsayılan Ne yapar
SYNC_DEFAULT_INTERVAL_MINUTES 60 Yeni oluşturulan bir kaynağa dakika cinsinden verilen senkronizasyon aralığı; 0 onu zamansız oluşturur. Zaten var olan bir kaynağa asla ulaşmaz — ne yükseltmede, ne de bu değer değiştiğinde — bu yüzden bir yükseltme kimsenin istemediği hiçbir giden trafiği başlatmaz. Kaynak başına, pano ve API 5 ile 43200 (30 gün) arasını, ya da asla’yı kabul eder
SYNC_PROBES_PER_TICK 10 Bir tick’in — bir dakikanın — kontrol edebileceği vadesi gelmiş kaynak sayısı. Geri kalanı sırasını korur, en eskiden başlayarak, ve bir sonraki tick onları alır

Gözlemlenebilirlik

Değişken Varsayılan Ne yapar
AUDIT_LOG_RETENTION_DAYS 365 Bir audit olayının ne kadar tutulduğu. Logun kendisi için bir anahtar yoktur — başarılı olan her durum değiştiren admin isteği kaydedilir. Bkz. Admin API
METRICS_TOKEN – GET /metrics’e ve başka hiçbir şeye ulaşan bir bearer kimlik bilgisi, bu yüzden scrape etmek Prometheus’a bir ADMIN_TOKEN vermek anlamına gelmez. En az 16 karakter — uzunluk bir taban, entropi değildir, ve bu endpoint hız sınırlı değildir. Ayarlanmazsa, /metrics yine de oturum açmış bir hesaba ya da ADMIN_TOKEN’a yanıt verir, ama yalnızca veritabanı ayaktayken; bir kesinti sırasında okunabilir kalmak isteyen bir örnek bunu ayarlar. Bkz. Admin API
METRICS_PUBLIC 0 1, /metrics’i hiçbir kimlik bilgisi olmadan yanıtlar. Özel bir ağ için, ya da yolu zaten koruyan bir proxy için — portun erişilebilir olduğu her yerde kapalı bırakın; exposition örneği tanımlar

Parçalama

Değişken Varsayılan Ne yapar
CHUNK_MAX_TOKENS 96 Parça başına token; embedding modelinin kendi tokenizer’ıyla sayılır
CHUNK_OVERLAP_TOKENS 24 Bir bölümün ardışık parçaları arasındaki örtüşme. CHUNK_MAX_TOKENS’tan küçük olmalıdır

Bilinmesi iyi olan: 96, modelin penceresinin bir kesri değildir — varsayılan model 512 token okur — altın kümede en iyi ölçülen değerdir ve pencereyi doldurmak daha kötü ölçer. OpenAI’da ikisini de yükseltin; onun penceresi 8191’dir. Birini değiştirmek yalnızca sonradan indekslenen dosyaları etkiler — her yere uygulamak için zorla yeniden indeksleyin. Bkz. İndeksleme.


Bir reverse proxy arkasında çalışmak

Varsayılan olarak önünde hiçbir şey yoktur — Compose, 3444’ü loopback arayüzünde yayınlar (CONTEXTATOR_BIND=127.0.0.1), onunla port arasında hiçbir şey olmadan, ve yukarıdaki varsayılanlar bunun için yazılmıştır. Onu başka bir yerde yayınlamak (CONTEXTATOR_BIND=0.0.0.0), önüne bir şey koymanın tam zamanıdır. nginx, Caddy, Traefik ya da bir bulut yük dengeleyicisini öne koyun ve iki ayar birlikte hareket etmelidir:

TRUST_PROXY=172.18.0.0/16        # proxy'nin kendi adresi ya da CIDR'ı, ya da host üzerinde çalışıyorsa `loopback`
PUBLIC_BASE_URL=https://docs.example.com
AUTH_COOKIE_SECURE=1

TRUST_PROXY, bu sunucunun o proxy’den X-Forwarded-For ve X-Forwarded-Proto’yu okumasını sağlayan şeydir. Arkasında 0’da bırakılırsa üç şey bozulur, ve hiçbiri bunu kendiliğinden söylemez:

  • IP başına oturum açma sınırı örnek geneline yayılır. Her istek proxy’nin adresini taşır, bu yüzden bir kişiden gelen AUTH_LOGIN_MAX_ATTEMPTS başarısızlığı herkese 429 yanıtı verir.
  • MCP connector’ları yetkilendirme yapamaz hale gelir. PUBLIC_BASE_URL ayarlanmamışken, OAuth korunan kaynak metadata’sı ve WWW-Authenticate işaretçisi req.protocol’den oluşturulur — ki bu http okur — bu yüzden belge http://… reklamını yaparken istemci https://… gönderir, ve /oauth/authorize her seferinde invalid_target yanıtı verir. PUBLIC_BASE_URL’i ayarlamak bu yarısını tek başına düzeltir, yukarıdaki blokta olmasının nedeni budur.
  • Session çerezi Secure bayrağını kaybeder, çünkü AUTH_COOKIE_SECURE=auto aynı yönlendirilmiş şemayı izler. AUTH_COOKIE_SECURE=1 bu yarısını tek başına düzeltir.

Sunucu hatayı tahmin etmek yerine gözlemler: bu örneğin güvenmediği bir X-Forwarded-* header’ı taşıyan ilk istek, üçünü de adlandıran tek bir uyarı loglar.

Proxy’yi adlandırın, istemcilerinizin bulunduğu ağı değil. Liste yalnızca eşe karşı değil, her sıçramaya karşı eşleştirilir — sunucu zinciri soketten dışarı doğru yürür, ve req.ip, listenin kapsamadığı ilk adrestir. Bu yüzden istemcilerin de 10.0.0.0/8 ya da 192.168.0.0/16 üzerinde olduğu bir LAN’da TRUST_PROXY=uniquelocal hiçbir şeyi korumaz: bir istemci tam olarak bir proxy gibi yürünür, ve X-Forwarded-For: 203.0.113.99, o değeri yeniden req.ip’e koyar. TRUST_PROXY=1, aynı tehlikenin açıkça söylenmiş halidir ve yalnızca porta proxy’den başka hiçbir şeyin ulaşamadığı durumda güvenlidir. Bir sıçrama sayısı kabul edilmez — bu sunucunun kontrol edemeyeceği bir iddiadır, ve proxy’nin önünde bir CDN belirdiği gün sessizce yanlış gider.

Proxy’nin, istemcinin gönderdiği her neyse onun üzerine eklemek yerine X-Forwarded-For’u değiştirdiğinden emin olun (nginx: proxy_set_header X-Forwarded-For $remote_addr;, önüne başka güvenilir bir proxy konulmadıkça $proxy_add_x_forwarded_for değil). Ekleyen bir proxy, çağırana en soldaki değeri verir, ve buradaki hiçbir ayar farkı söyleyemez. Panonun önüne Basic authentication koyan bir nginx örneği için bkz. Güvenlik.

Değişiklikleri uygulamak

docker compose up -d      # konteyneri yeni .env ile yeniden oluşturur

Ayarların çoğu hemen devreye girer. Birkaçı biraz daha fazlasını ister:

  • EMBEDDING_MODEL — bir sonraki indeksleme çalışması otomatik olarak tam bir yeniden indekslemeye döner. Bu çalışmayı hiçbir şey kendiliğinden başlatmaz: proje sayfası uyuşmazlığı bir Re-index now düğmesiyle gösterir, ve düğmeye basılana kadar arama reddedilmeye devam eder. Çalışmayı günün herhangi bir saatinde başlatmak güvenlidir — eski indeksin yanına yazılır ve sonunda tek bir adımda yayınlanır, bu yüzden proje asla “indekslenmiş içerik yok” durumundan geçmez. Çalışırken proje, parçalarının ve vektör indeksindeki payının iki kopyasını tutar, bu yüzden disk için zirveyi planlayın. Bkz. Gömme Modelleri.
  • EMBEDDING_QUERY_PREFIX / EMBEDDING_PASSAGE_PREFIX — modeli değiştirmek gibi sayılır: ikisini de none’a ayarlamak dahil, birini ayarlamak her projeyi bir sonraki çalışmasında yeniden indeksler.
  • EMBEDDING_DIMENSIONS — bir kez RESET_VECTORS=1 gerektirir; bkz. Gömme Modelleri.
  • CHUNK_MAX_TOKENS / CHUNK_OVERLAP_TOKENS — yeni indekslenen dosyalara uygulanır; her şeyi yeniden kurmak için Force re-index’i kullanın.

Bir varsayılan değişikliğini yükseltmek kendi başına bir durumdur: Xenova/multilingual-e5-small, Xenova/paraphrase-multilingual-MiniLM-L12-v2’den sonra varsayılan oldu. EMBEDDING_MODEL’i hiç ayarlamamış bir kurulum yükseltmede yeniyi alır, ve mevcut her proje yeniden indekslenene kadar bir uyuşmazlık olarak okunur. Bunu ertelemek için .env’de eski değeri sabitleyin — ve geri dönmenin yalnızca ayarı geri almak meselesi olmadığını unutmayın: yeni model altında zaten yeniden indekslenmiş bir proje geri dönmek için başka bir yeniden indekslemeye ihtiyaç duyar.

Neyin canlı olduğunu kontrol etmek

GET /api/health, çalışan yapılandırmayı raporlar: veritabanı durumu, gömme sağlayıcısı, model, boyutlar, dtype ve hazırlık ve giriş penceresi, CHUNK_MAX_TOKENS’ın o pencereye sığıp sığmadığı, açık MCP oturumları, izin verilen belge kökleri, veri dizini, SECRET_KEY’in ayarlanıp ayarlanmadığı ve yükleme sınırları. Panonun üst çubuğu önemli olanları gösterir.

Çağıranı ne kadar az tanıyorsa o kadar az ayrıntıyla yanıtlar: anonim bir istek — bir monitör, ya da konteynerin kendi sağlık kontrolü — ok, sürüm, veritabanı durumu ve setup’ın hâlâ beklemede olup olmadığını alır, makineyi tanımlayan hiçbir şeyi almaz. Gerisi için oturum açın ya da ADMIN_TOKEN kullanın.

GET /metrics, kendi kimlik bilgisi kurallarına sahip ayrı, Prometheus biçimli bir endpoint’tir — bkz. Admin API.

Gezinmek için ok tuşları, açmak için Enter.