DEV Community

Cover image for OpenViking Nedir?
Tobias Hoffmann
Tobias Hoffmann

Posted on • Originally published at apidog.com

OpenViking Nedir?

ÖNEMLİ KISIM (TL;DR)

OpenViking, yapay zeka aracıları için düz vektör depolamasını dosya sistemi paradigmasıyla değiştiren açık kaynaklı bir bağlam veritabanıdır. Bağlamı (anılar, kaynaklar, beceriler) viking:// URI'ları altında üç katman halinde düzenler: L0 (~100 jeton), L1 (~2k jeton), L2 (tam içerik). Karşılaştırmalı testler, geleneksel RAG'a göre %91 jeton maliyet azaltımı ve %43 daha iyi görev tamamlama gösteriyor.

Apidog'u bugün deneyin

Giriş

Yapay zeka aracınız bir şeyleri sürekli unutuyor. Aynı API bitiş noktasını iki kez istedi. Hazırlık ortamı tercihinizi görmezden geldi. Dün hangi testlerin geçtiğini unuttu.

Günümüzde aracı geliştirmenin gerçekliği budur. Çoğu ekip RAG işlem hatlarını, vektör veritabanlarını ve özel bellek sistemlerini yamalıyor. Sonuç: parçalanmış bağlam, patlayan jeton maliyetleri ve sessizce başarısız olan alma işlemleri.

Veriler bunu destekliyor. LoCoMo10 veri kümesi kullanılarak yapılan karşılaştırmalı testlerde, geleneksel RAG sistemleri %35-44 görev tamamlama oranlarına ulaşırken 24-51 milyon girdi jetonu harcadı.

OpenViking farklı bir yaklaşım benimsiyor. ByteDance'in OpenViking ekibi tarafından oluşturulan bu sistem, düz vektör depolamasını bir dosya sistemi paradigmasıyla değiştiriyor. Tüm bağlam, hiyerarşik L0/L1/L2 yüklemesiyle viking:// URI'ları altında yer alıyor. Sonuç: %52 görev tamamlama ve %91 daha az jeton.

💡API test ajanları geliştiren Apidog kullanıcıları, test çalıştırmaları boyunca konuşma bağlamını sürdürmek, kullanıcı ortamı tercihlerini hatırlamak ve anlamsal alma için API belgelerini depolamak amacıyla OpenViking'i entegre edebilir.

Bu kılavuzda, OpenViking'in bağlam parçalanmasını nasıl çözdüğünü öğrenecek, L0/L1/L2 modelini uygulamalı olarak görecek ve ilk sunucunuzu 15 dakikada dağıtacaksınız.

Aracı Bağlamı Sorunu

Yapay zeka aracıları, geleneksel uygulamaların hiç karşılaşmadığı bağlam sorunlarıyla karşı karşıyadır.

Geliştiricilerin API'leri test etmesine yardımcı olan bir aracıyı düşünün. Bir hafta içinde şunları takip etmesi gerekir:

  • Kullanıcı tercihleri ("hazırlık ortamı", "Python yerine curl")
  • Proje bağlamı (bitiş noktaları, kimlik doğrulama yöntemleri, geçmiş test sonuçları)
  • Araç kalıpları (hangi bitiş noktaları başarısız oluyor, yaygın şema hataları)
  • Görev geçmişi (ne test edildi, hangi hatalar ortaya çıktı)

Geleneksel RAG bunu bir vektör veritabanında düz parçalar halinde depolar. Sorguladığınızda, yapı, hiyerarşi olmayan ve neyin kaçırıldığına dair görünürlük sağlamayan en benzer K parçasını alırsınız.

Beş Temel Zorluk

OpenViking, aracı bağlam yönetimindeki beş temel sorunu tanımlar:

Zorluk Geleneksel RAG OpenViking Çözümü
Parçalanmış Bağlam Anılar, kaynaklar, beceriler ayrı ayrı depolanır viking:// altında birleşik dosya sistemi paradigması
Yükselen Talep Uzun görevler büyük bağlam üretir L0/L1/L2 hiyerarşik yükleme jetonları %91 azaltır
Kötü Alma Düz vektör araması küresel görüşten yoksundur Niyet analizi ile dizin özyinelemeli alma
Gözlemlenemez Kara kutu alma zincirleri Hata ayıklama için görselleştirilmiş arama yörüngeleri
Sınırlı Yineleme Yalnızca kullanıcı etkileşim geçmişi 6 bellek kategorisiyle otomatik oturum yönetimi

Bu, "her şeyi depola, belirsizce al"dan "her şeyi yapılandır, hassas bir şekilde al"a geçiştir.

OpenViking Nedir?

OpenViking, ByteDance'in OpenViking ekibi tarafından Apache 2.0 altında oluşturulan, yapay zeka aracıları için açık kaynaklı bir bağlam veritabanıdır.

OpenViking mimarisi

Tüm bağlamı sanal bir dosya sisteminde birleştirir. Anılar, kaynaklar ve beceriler, her biri benzersiz bir URI'ye sahip viking:// altındaki dizinlere eşlenir.

viking://
├── resources/              # Harici bilgi: belgeler, kod, web sayfaları
│   ├── my_project/
│   │   ├── docs/
│   │   │   ├── api/
│   │   │   └── tutorials/
│   │   └── src/
│   └── ...
├── user/                   # Kullanıcıya özel: tercihler, alışkanlıklar
│   └── memories/
│       ├── preferences/
│       │   ├── writing_style
│       │   └── coding_habits
│       └── ...
└── agent/                  # Aracı yetenekleri: beceriler, görev anıları
    ├── skills/
    │   ├── search_code
    │   ├── analyze_data
    │   └── ...
    ├── memories/
    └── instructions/
Enter fullscreen mode Exit fullscreen mode

Aracılar bağlamı doğrudan yönetebilir:

  • ls viking://resources/my_project/docs/ ile dizinlerde gezinin
  • find "kimlik doğrulama yöntemleri" ile semantik arama yapın
  • read viking://resources/docs/auth.md ile tam içeriği okuyun
  • abstract viking://resources/docs/ ile hızlı özetler alın

Bu, tüm sabit diskinizi aramak ile dosyanın tam olarak hangi dizinde olduğunu bilmek arasındaki farka benzer.

Temel Özellik 1: Dosya Sistemi Yönetim Paradigması

Tüm bağlam türlerini tek bir model altında birleştirerek bağlam parçalanmasını ortadan kaldırır.

Üç Bağlam Türü

Tür Amaç Yaşam Döngüsü Girişim
Kaynak Harici bilgi (belgeler, kod, SSS) Uzun vadeli, statik Kullanıcı ekler
Bellek Aracının bilişimi (tercihler, deneyimler) Uzun vadeli, dinamik Aracı çıkarır
Beceri Çağrılabilir yetenekler (araçlar, MCP) Uzun vadeli, statik Aracı çağırır

Her tür kendi dizininde yaşar:

  • viking://resources/: Ürün kılavuzları, kod depoları, belgeler
  • viking://user/memories/: Kullanıcı tercihleri, varlık anıları, olaylar
  • viking://agent/skills/: Araç tanımları, MCP yapılandırmaları
  • viking://agent/memories/: Öğrenilmiş kalıplar, vaka çalışmaları

Unix Benzeri API

OpenViking tanıdık komut satırı işlemleri sağlar:

from openviking import OpenViking

client = OpenViking(path="./data")

# Tüm bağlam türlerinde anlamsal arama
results = client.find("kullanıcı kimlik doğrulaması")

# Dizin içeriğini listele
contents = client.ls("viking://resources/")

# Tam içeriği oku
doc = client.read("viking://resources/docs/auth.md")

# Hızlı özet al (L0 katmanı)
abstract = client.abstract("viking://resources/docs/")

# Detaylı genel bakış al (L1 katmanı)
overview = client.overview("viking://resources/docs/")
Enter fullscreen mode Exit fullscreen mode

API hem Python SDK hem de HTTP sunucusu olarak çalışır ve herhangi bir aracı çerçevesiyle uyumludur.

Temel Özellik 2: L0/L1/L2 Hiyerarşik Bağlam Yükleme

Büyük bağlamı istemlere sıkıştırmak pahalıdır. OpenViking tüm bağlamı otomatik olarak üç hiyerarşik katmana işler:

Katman Ad Dosya Jeton Sınırı Amaç
L0 Özet .abstract.md ~100 jeton Vektör araması, hızlı filtreleme
L1 Genel Bakış .overview.md ~2k jeton Yeniden sıralama, içerik gezintisi
L2 Detay Orijinal dosyalar Sınırsız Tam içerik, isteğe bağlı yükleme

Nasıl Çalışır

Bir kaynak eklediğinizde (örn. PDF belge):

  1. Belgeyi metne ayrıştırır
  2. AGFS depolamasında bir dizin ağacı oluşturur
  3. Anlamsal işlemeyi eşzamansız olarak sıraya alır
  4. L0/L1 özetlerini aşağıdan yukarıya oluşturur

Sonuç:

viking://resources/my_project/
├── .abstract.md               # L0: Kısa özet
├── .overview.md               # L1: Detaylı genel bakış
├── docs/
│   ├── .abstract.md
│   ├── .overview.md
│   ├── auth.md               # L2: Tam içerik
│   ├── endpoints.md
│   └── rate-limits.md
└── src/
    └── ...
Enter fullscreen mode Exit fullscreen mode

Jeton Bütçesi Etkisi

Bu yaklaşım önemli maliyet tasarrufu sağlar:

# Geleneksel RAG: Tüm içeriği yükle
full_docs = retrieve_all("kimlik doğrulama")  # 50k jeton

# OpenViking: L1 ile başla, sadece gerektiğinde L2'yi yükle
overview = client.overview("viking://resources/docs/auth/")  # 2k jeton

if needs_more_detail(overview):
    content = client.read("viking://resources/docs/auth/oauth.md")
Enter fullscreen mode Exit fullscreen mode

Testlerde, bu model %91 jeton azaltımı ve %43 daha iyi görev tamamlama sağladı.

Temel Özellik 3: Dizin Özyinelemeli Alma

Tekli vektör araması karmaşık sorgularla mücadele eder. OpenViking, dizin özyinelemeli bir alma stratejisi uygular:

Beş Adımlı Süreç

1. Niyet Analizi
   ↓
2. İlk Konumlandırma (yüksek puanlı dizinleri bul)
   ↓
3. Gelişmiş Keşif (dizinler içinde ara)
   ↓
4. Özyinelemeli İniş (alt dizinlere in)
   ↓
5. Sonuç Birleştirme (sıralanmış bağlamları döndür)
Enter fullscreen mode Exit fullscreen mode

Adım 1: Niyet Analizi

Sorgu analiz edilir:

  • Niyet: nasıl yapılır
  • Anahtar varlıklar: kimlik doğrula, kullanıcı
  • Beklenen içerik: kimlik doğrulama kılavuzları

Adım 2: İlk Konumlandırma

Vektör araması en alakalı dizinleri bulur:

  • viking://resources/docs/auth/
  • viking://resources/docs/security/

Adım 3: Gelişmiş Keşif

Yüksek puanlı dizinin içinde dosya araması yapılır.

Adım 4: Özyinelemeli İniş

Varsa alt dizinlere iner.

Adım 5: Sonuç Birleştirme

Sonuçlar, izlerle birlikte sıralanıp döndürülür.

Bu yöntem, hem doğruluğu hem de şeffaflığı artırır.

Temel Özellik 4: Görselleştirilmiş Alma İzleri

Geleneksel RAG bir kara kutudur. OpenViking, alma işlemini gözlemlenebilir yapar:

"OAuth jeton yenileme" sorgusu için alma izi:

├── viking://resources/docs/
│   ├── [PUAN: 0.45] .abstract.md: atlandı
│   └── [PUAN: 0.89] auth/: seçildi
│       ├── [PUAN: 0.92] oauth.md: DÖNDÜRÜLDÜ
│       ├── [PUAN: 0.34] jwt.md: atlandı
│       └── [PUAN: 0.78] providers/
│           └── [PUAN: 0.85] google.md: DÖNDÜRÜLDÜ
Enter fullscreen mode Exit fullscreen mode

Bu izler, hata ayıklamayı kolaylaştırır.

Temel Özellik 5: Otomatik Oturum Yönetimi

OpenViking, yerleşik bir bellek kendi kendine yineleme döngüsü içerir. Oturum sonunda sistem anıları çıkarır ve günceller.

Altı Bellek Kategorisi

Kategori Sahip Konum Açıklama Güncelleme Stratejisi
profil kullanıcı user/memories/.overview.md Temel kullanıcı bilgileri Eklenebilir
tercihler kullanıcı user/memories/preferences/ Konuya göre tercihler Eklenebilir
varlıklar kullanıcı user/memories/entities/ Kişiler, projeler, kuruluşlar Eklenebilir
olaylar kullanıcı user/memories/events/ Kararlar, dönüm noktaları Güncelleme yok
vakalar aracı agent/memories/cases/ Öğrenilmiş vakalar Güncelleme yok
kalıplar aracı agent/memories/patterns/ Öğrenilmiş kalıplar Güncelleme yok

Bellek Çıkarma Nasıl Çalışır

# Bir oturum başlat
session = client.session()

# Mesajlar ekle
await session.add_message("user", [{"type": "text", "text": "Kullanıcı arayüzünde karanlık modu tercih ederim"}])
await session.add_message("assistant", [{"type": "text", "text": "Anladım. Gelecekteki tüm ekran görüntüleri için karanlık modu kullanacağım."}])

# Araç kullanımını kaydet
await session.add_usage({
    "tool": "screenshot",
    "parameters": {"theme": "dark"},
    "result": "success"
})

# Oturumu commit et: bellek çıkarmayı tetikler
await session.commit()
Enter fullscreen mode Exit fullscreen mode

Commit sonrası, OpenViking oturumu sıkıştırır, anıları çıkarır ve dizinleri günceller.

Mimariye Genel Bakış

OpenViking'in mimarisi katmanlıdır:

OpenViking mimarisine genel bakış

Çift Katmanlı Depolama

Katman Teknoloji Depolar
AGFS Özel dosya sistemi L0/L1/L2 içerik, multimedya dosyaları, ilişkiler
Vektör İndeksi Vektör DB URI'ler, gömme'ler, meta veriler (dosya içeriği yok)

Bu yapı, hem içerik erişimi hem de performans optimizasyonu sağlar.

Hızlı Başlangıç: İlk OpenViking Sunucunuzu Dağıtın

Önkoşullar

  • Python: 3.10 veya üzeri
  • Go: 1.22+ (AGFS bileşenleri için)
  • C++ Derleyicisi: GCC 9+ veya Clang 11+
  • İşletim Sistemi: Linux, macOS veya Windows

Adım 1: OpenViking'i Yükleyin

pip install openviking --upgrade --force-reinstall
Enter fullscreen mode Exit fullscreen mode

Opsiyonel Rust CLI:

curl -fsSL https://raw.githubusercontent.com/volcengine/OpenViking/main/crates/ov_cli/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

Adım 2: Modelleri Yapılandırın

~/.openviking/ov.conf dosyasıyla API anahtarlarınızı ve model sağlayıcılarınızı ayarlayın.

OpenAI, Volcengine veya LiteLLM desteklenir.

{
  "storage": {
    "workspace": "/home/kullanıcı_adınız/openviking_çalışma_alanı"
  },
  "log": {
    "level": "INFO",
    "output": "stdout"
  },
  "embedding": {
    "dense": {
      "api_base": "https://api.openai.com/v1",
      "api_key": "sizin-openai-api-anahtarınız",
      "provider": "openai",
      "dimension": 3072,
      "model": "text-embedding-3-large"
    },
    "max_concurrent": 10
  },
  "vlm": {
    "api_base": "https://api.openai.com/v1",
    "api_key": "sizin-openai-api-anahtarınız",
    "provider": "openai",
    "model": "gpt-4o",
    "max_concurrent": 100
  }
}
Enter fullscreen mode Exit fullscreen mode

Adım 3: Sunucuyu Başlatın

openviking-server
Enter fullscreen mode Exit fullscreen mode

Arka planda log ile:

nohup openviking-server > /data/log/openviking.log 2>&1 &
Enter fullscreen mode Exit fullscreen mode

Adım 4: İlk Kaynağınızı Ekleyin

# Rust CLI
ov add-resource https://docs.example.com/api-guide.pdf

# Python SDK
from openviking import OpenViking

client = OpenViking(path="./data")
client.add_resource("https://docs.example.com/api-guide.pdf")
Enter fullscreen mode Exit fullscreen mode

Adım 5: Ara ve Al

# Anlamsal işlemeyi bekle, sonra ara
ov find "kimlik doğrulama yöntemleri"

# Dizin içeriğini listele
ov ls viking://resources/

# Dizin ağacını görüntüle
ov tree viking://resources/docs -L 2

# Belirli içeriği grep ile ara
ov grep "OAuth" --uri viking://resources/docs/
Enter fullscreen mode Exit fullscreen mode

Adım 6: VikingBot'u Etkinleştir (İsteğe Bağlı)

pip install "openviking[bot]"

# Bot etkinleştirilmiş sunucuyu başlat
openviking-server --with-bot

# Sohbeti başlat
ov chat
Enter fullscreen mode Exit fullscreen mode

Performans Karşılaştırmaları

OpenViking, LoCoMo10 veri kümesiyle geleneksel RAG ve yerel bellek sistemlerine karşı test edildi.

Sistem Tamamlama Oranı Girdi Jetonları
OpenClaw (yerel bellek) %35,65 24,6M
OpenClaw + LanceDB %44,55 51,6M
OpenClaw + OpenViking %52,08 4,3M

Özet:

  • Yerel belleğe göre %43 iyileşme, %91 jeton azaltımı
  • LanceDB'ye göre %17 iyileşme, %92 jeton azaltımı

OpenViking'i Apidog ile Entegre Etme

API testi için yapay zeka ajanları geliştiriyorsanız, Apidog ile kolay entegrasyon için şu adımları izleyin:

OpenViking'i Apidog ile entegre etme

Adım 1: OpenViking Sunucusunu Kurun

Yukarıdaki hızlı başlangıcı takip edin.

Adım 2: Apidog API Belgelerini İçe Aktarın

# Apidog proje belgelerinizi bir kaynak olarak ekleyin
ov add-resource https://docs.apidog.com/overview?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation
ov add-resource https://docs.apidog.com/api-testing?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation
Enter fullscreen mode Exit fullscreen mode

Adım 3: Kullanıcı Tercihlerini Depolayın

from openviking import OpenViking

client = OpenViking(path="./apidog-agent-data")
session = client.session()

await session.add_message("user", [{
    "type": "text",
    "text": "API testleri için her zaman hazırlık ortamını kullan"
}])
await session.commit()
Enter fullscreen mode Exit fullscreen mode

Adım 4: Test Sırasında Bağlamı Sorgulayın

results = client.find("kimlik doğrulama uç noktaları")
for ctx in results.resources:
    print(f"Bulunan: {ctx.uri}")

prefs = client.find("hazırlık ortamı tercihi", target_uri="viking://user/memories/")
Enter fullscreen mode Exit fullscreen mode

Adım 5: Aracı Çerçevenize Bağlanın

# Python SDK
from openviking import OpenViking
client = OpenViking(path="./data")

# Veya HTTP API
import httpx
response = httpx.post(
    "http://localhost:1933/api/v1/search/find",
    json={"query": "kimlik doğrulama uç noktaları"},
    headers={"X-API-Key": "sizin-api-anahtarınız"}
)
Enter fullscreen mode Exit fullscreen mode

Gelişmiş Teknikler ve En İyi Uygulamalar

Üretim Dağıtımları İçin İpuçları

  1. Sık erişilen bağlamı önceden hazırla
ov add-resource https://docs.example.com --wait
Enter fullscreen mode Exit fullscreen mode
  1. Bağlam süresi sonunu uygula
await session.archive(max_age_days=7)
Enter fullscreen mode Exit fullscreen mode
  1. Vektör indeksi sağlığını izle
ov debug stats
Enter fullscreen mode Exit fullscreen mode

Kaçınılması Gereken Hatalar

  1. L2 içeriğini erken yükleme: Önce L0/L1 kullanın.
  2. Oturum commit'lerini atlamak: Bellek çıkarma için commit şarttır.
  3. Tek dizinleri aşırı yüklemek: Büyük kaynakları alt dizinlere bölün.
  4. Alma izlerini göz ardı etmek: Hata ayıklama için izleri inceleyin.

Performans Optimizasyonu

Senaryo Öneri
Yüksek sorgu hacmi OpenViking'i bağlantı havuzlu HTTP sunucusu olarak çalıştırın
Büyük belgeler İçe aktarmadan önce konuya göre parçalara ayırın
Düşük gecikme Sık erişilen içerik için L0/L1'i önceden oluşturun
Çok kullanıcılı kurulum Her kullanıcı için ayrı çalışma alanları kullanın

Güvenlik En İyi Uygulamaları

  • API anahtarlarını ortam değişkenlerinde veya gizli yöneticilerde saklayın
  • HTTP sunucu dağıtımları için HTTPS'yi etkinleştirin
  • Herkese açık uç noktalarda hız sınırlaması uygulayın
  • Geliştirme ve üretim için ayrı API anahtarı kullanın

Gerçek Dünya Kullanım Durumları

1. Yapay Zeka Kodlama Asistanları

  • viking://resources/my_project/src/ ile proje yapısında gezinme
  • Kullanıcı kodlama tercihlerini hatırlama
  • Kod oluşturma sırasında API belgelerini hızlıca bulma

Sonuç: Unutkanlıkta %67 azalma, %43 jeton tasarrufu.

2. Müşteri Destek Temsilcileri

  • Ürün belgeleri ve müşteri geçmişi ayrı dizinlerde tutulur
  • Destek kılavuzları beceri olarak eklenir

Sonuç: İlk temasta çözüm oranı %52'den %71'e çıktı.

3. Araştırma Asistanları

  • Makaleler konuya göre dizinlenir
  • Araştırma metodolojileri beceri olarak tutulur
  • Otomatik bellek çıkarma ile notlar analiz edilir

Sonuç: Araştırmacılar, ilgili makaleleri 3 kat daha hızlı buluyor.

Alternatifler ve Karşılaştırmalar

OpenViking ve Geleneksel Vektör Veritabanları

Yön Geleneksel RAG (Pinecone, LanceDB) OpenViking
Depolama Modeli Düz vektör parçaları Hiyerarşik dosya sistemi
Alma En iyi-K benzerliği Dizin özyinelemeli + niyet analizi
Gözlemlenebilirlik Kara kutu Görselleştirilmiş arama izleri
Jeton Verimliliği Tümünü yükle veya kırp L0/L1/L2 aşamalı yükleme
Bellek Yinelemesi Manuel veya yok Otomatik oturum yönetimi
Bağlam Türleri Yalnızca belgeler Kaynaklar, anılar, beceriler birleşik
Hata Ayıklama Tahmin Dizin geçiş günlükleri

OpenViking ve LangChain Belleği

Yön LangChain Belleği OpenViking
Kalıcılık Yalnızca konuşma arabelleği L0/L1/L2 ile tam dosya sistemi
Ölçeklenebilirlik Bağlam penceresiyle sınırlı Hiyerarşik yükleme, katı sınır yok
Alma Doğrusal arama Dizin özyinelemeli + anlamsal
Bellek Türleri Tek arabellek 6 kategori (profil, tercihler, olaylar vb.)

Alternatifleri Ne Zaman Düşünmeli?

Geleneksel vektör veritabanlarını şunlarda kullanın:

  • 100ms altı alma gecikmesi gerekiyorsa
  • Kullanımınız basit anahtar kelime araması ise
  • RAG hattınız sorunsuz çalışıyorsa

OpenViking'i şunlarda kullanın:

  • Uzun süreli aracı konuşmaları yürütüyorsanız
  • Çoklu bağlam (belgeler+tercihler+araçlar) ihtiyacınız varsa
  • Jeton maliyeti önemliyse
  • Gözlemlenebilir, hata ayıklanabilir alma istiyorsanız

Geleneksel RAG ile Karşılaştırma

Yön Geleneksel RAG OpenViking
Depolama Modeli Düz vektör parçaları Hiyerarşik dosya sistemi
Alma En iyi-K benzerliği Dizin özyinelemeli + niyet analizi
Gözlemlenebilirlik Kara kutu Görselleştirilmiş arama izleri
Jeton Verimliliği Tümünü yükle veya kırp L0/L1/L2 aşamalı yükleme
Bellek Yinelemesi Manuel veya yok Otomatik oturum yönetimi
Bağlam Türleri Yalnızca belgeler Kaynaklar, anılar, beceriler birleşik
Hata Ayıklama Tahmin Dizin geçiş günlükleri

Üretim Dağıtımı

OpenViking'i üretimde bağımsız bir HTTP hizmeti olarak çalıştırın.

Altyapı Önerisi:

  • Bulut: Volcengine ECS veya dengi
  • OS: veLinux veya Ubuntu 22.04+
  • Depolama: SSD tabanlı AGFS birimi
  • Ağ: Model API'lerine düşük gecikmeli bağlantı

Güvenlik Hususları:

  • API anahtarlarını ortam değişkenlerinde saklayın
  • HTTP uç noktalarında kimlik doğrulama kullanın
  • Sunucu iletişimi için HTTPS kullanın
  • Kötüye kullanımı önlemek için rate limiting uygulayın

İzleme:

{
  "log": {
    "level": "INFO",
    "output": "file",
    "path": "/var/log/openviking/server.log"
  }
}
Enter fullscreen mode Exit fullscreen mode

Takip edilecek metrikler:

  • Anlamsal işleme kuyruğu
  • Vektör arama gecikmesi
  • AGFS IO
  • Bellek çıkarma başarı oranları

Sınırlamalar ve Hususlar

Mevcut Sınırlamalar:

  • Yalnızca Python SDK (diğer diller için HTTP gerekir)
  • Harici model bağımlılıkları
  • Dosya sistemi paradigmasına alışma gerektirir
  • Proje erken geliştirme aşamasında, API'ler değişebilir

Ne zaman kullanmalı?

  • Uzun süreli, bellek gerektiren aracı konuşmaları
  • Çoklu bağlam türü (belgeler+tercihler+araçlar)
  • Gözlemlenebilir, hata ayıklanabilir alma ihtiyacı
  • Jeton maliyeti kritikse

Alternatif düşün:

  • Basit SSS uygulamaları
  • Zaten sorunsuz çalışan bir RAG hattınız varsa
  • Süper düşük gecikme gerekiyorsa

Geleceğe Yönelik Yol Haritası

OpenViking şu anda erken geliştirme aşamasında (2025 başı, v0.1.x). Yol haritası:

  • Çoklu kullanıcı desteği (ekipler için çalışma alanları)
  • Gelişmiş analitik ve metrikler
  • Eklenti ekosistemi (popüler aracı çerçeveleri için)
  • Edge dağıtımı için hafif mod
  • Gelişmiş MCP desteği

Topluluk katkılarına açıktır. Proje Apache 2.0 ile açık kaynaktır.

Sonuç

OpenViking, yapay zeka aracılarında bağlam yönetimini yeniden tanımlar. Bilgiyi dosya sistemi gibi düzenleyerek, geleneksel RAG sistemlerinin parçalanma, jeton israfı ve kara kutu alma problemlerini çözer.

Ana Çıkarımlar

  • Dosya sistemi paradigması bağlamı birleştirir: Tüm anılar, kaynaklar ve beceriler viking:// URI'ları altında
  • L0/L1/L2 yükleme jetonları %91 azaltır: Her şeyi istemlere dökmek yerine aşamalı yükleme
  • Dizin özyinelemeli alma doğruluğu artırır: Önce yüksek puanlı dizinleri kilitle, sonra içeriği keşfet
  • Görselleştirilmiş izler hata ayıklamayı sağlar: Alma işleminin tam olarak hangi yolları izlediğini görün
  • Otomatik oturum yönetimi öğrenmeyi sağlar: Aracılar her konuşmadan anılar çıkarır

Top comments (0)