AI Document Assistant, kullanıcıların PDF belgeleriyle doğal dilde etkileşime girmesini sağlayan, RAG (Retrieval-Augmented Generation) mimarisine sahip modern bir web uygulamasıdır. Google Gemini modellerini ve vektör veritabanlarını kullanarak belgeleri analiz eder, özetler ve soruları yanıtlar.
- 📄 Akıllı Doküman Analizi: Yüklenen PDF belgeleri otomatik olarak parçalanır (chunking) ve analiz edilir.
- 🤖 RAG Mimarisi: Sorulan sorulara, belgenin içeriğine dayalı ve bağlamsal cevaplar verilir.
- 📍 Akıllı Atıf Sistemi: Yapay zeka, verdiği cevabın belgenin hangi sayfasında geçtiğini referans gösterir.
- 🎓 Otomatik Sınav (Quiz) Modu: Yüklenen belgeden otomatik olarak çoktan seçmeli sorular oluşturur ve kullanıcının bilgisini test eder.
- 💾 Kalıcı Hafıza: PostgreSQL ve pgvector eklentisi kullanılarak vektör verileri kalıcı olarak saklanır.
- Backend: ASP.NET Core (MVC)
- AI Model: Google Gemini 2.5 Flash & Text Embedding 004
- Veritabanı: PostgreSQL (Docker üzerinde
pgvector/pgvector:pg16imajı) - ORM: Entity Framework Core
- PDF İşleme: UglyToad.PdfPig
- Frontend: HTML5, CSS3, Bootstrap 5, Vanilla JS
Projeyi yerel ortamınızda çalıştırmak için aşağıdaki adımları izleyin.
- .NET 8.0 SDK
- Docker Desktop (Veritabanı için)
- Google AI Studio API Key
git clone [https://github.com/metey12/AI-Document-Assistant.git](https://github.com/metey12/AI-Document-Assistant.git)
cd AI-Document-AssistantPostgreSQL ve pgvector eklentisini içeren konteyneri başlatın:
docker run --name rag_db -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d pgvector/pgvector:pg16Services/GeminiService.cs dosyasını açın ve API anahtarınızı girin:
private readonly string _apiKey = "BURAYA_GEMINI_API_KEY_GELECEK";dotnet ef database updatedotnet runTarayıcınızda http://localhost:5xxx adresine gidin.
- PDF Yükle: Sol menüden bir ders notu veya kitap bölümü yükleyin.
- Özet: Sistem belgeyi analiz edip kısa bir özet çıkaracaktır.
- Sohbet: "Bu belgedeki ana fikir nedir?" gibi sorular sorun. Sistem sayfa numarasıyla birlikte cevap verecektir.
- Quiz: "Sınav Modu" butonuna basarak yapay zekanın hazırladığı sorularla kendinizi test edin.
Pull request'ler kabul edilir. Büyük değişiklikler için lütfen önce tartışmak amacıyla bir issue açınız.