Skip to content

AI destekli PDF sorgulama aracı. Ollama, LM Studio ve API'lar kullanarak PDF belgelerinizden doğal dille anında bilgi edinin.

License

Notifications You must be signed in to change notification settings

SIYAKS-ARES/smart-doc-insight

Repository files navigation

Smart Doc Insight

Smart Doc Insight, öğrencilerin PDF formatındaki proje dokümanlarını yükleyebildiği ve öğretmenlerin bu dokümanları yapay zeka ile analiz edebildiği bir web uygulamasıdır.

🌐 Proje Özellikleri

  • Öğrenci ve öğretmen rollerine sahip kullanıcı sistemi
  • PDF doküman yükleme ve saklama
  • Yerel ve API tabanlı LLM entegrasyonları:
    • Yerel LLM'ler: Ollama, LM Studio
    • API Tabanlı LLM'ler: OpenAI GPT, Google Gemini, Anthropic Claude
  • MongoDB veritabanı entegrasyonu
  • Flask web framework kullanımı

🔧 Kurulum

Gereksinimleri

  • Python 3.8+
  • MongoDB
  • LLM Sağlayıcıları (Aşağıdaki seçeneklerden birini kurabilirsiniz):

Adımlar

  1. Miniconda ile yeni bir ortam oluşturun:
conda create -n flask_llm_app python=3.10
conda activate flask_llm_app
  1. Proje deposunu klonlayın:
git clone https://github.com/kullaniciadi/smart-doc-insight.git
cd smart-doc-insight
  1. Gerekli paketleri yükleyin:
pip install -r requirements.txt
  1. Tercih ettiğiniz LLM sağlayıcısını kurun:

    • Yerel LLM'ler için:

      • Ollama kullanmak için:

        # Ollama'yı işletim sisteminize göre kurun: https://ollama.ai/download
        ollama pull mistral
      • LM Studio kullanmak için:

        # LM Studio'yu indirin: https://lmstudio.ai/
        # Python bağlantı kurabilmek için:
        pip install lmstudio
    • API Tabanlı LLM'ler için:

  2. MongoDB'yi başlatın:

# MongoDB'nin çalıştığından emin olun
  1. .env dosyasını düzenleyin:
MONGO_URI=mongodb://localhost:27017/smart_doc_insight
SECRET_KEY=gizli_anahtarinizi_degistirin

# LLM Sağlayıcı seçeneği (ollama, lmstudio, openai, gemini, claude)
LLM_PROVIDER=ollama

# Yerel LLM ayarları
# Ollama ayarları
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=mistral:latest

# LM Studio ayarları 
LLM_STUDIO_MODEL=mistral-nemo-instruct-2407

# API Tabanlı LLM ayarları
# OpenAI
OPENAI_API_KEY=sk-xxxxxxxxxxxx
OPENAI_MODEL=gpt-3.5-turbo

# Google Gemini
GOOGLE_API_KEY=xxxxxxxxxxxxxx
GEMINI_MODEL=gemini-pro

# Anthropic Claude
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxx
CLAUDE_MODEL=claude-3-opus-20240229
  1. Uygulamayı başlatın:
python run.py
  1. Tarayıcınızdan http://localhost:5000 adresine gidin.

📁 Proje Yapısı

smart-doc-insight/
├── app/                      # Ana uygulama paketi
│   ├── routes/               # API ve sayfa yönlendirmeleri
│   │   ├── __init__.py
│   │   ├── auth.py           # Kimlik doğrulama rotaları
│   │   ├── main.py           # Ana sayfalar
│   │   ├── student.py        # Öğrenci işlemleri
│   │   └── teacher.py        # Öğretmen işlemleri
│   ├── static/               # Statik dosyalar (CSS, JS)
│   │   ├── css/
│   │   └── js/
│   ├── templates/            # HTML şablonları
│   │   ├── auth/
│   │   ├── student/
│   │   ├── teacher/
│   │   └── base.html
│   ├── utils/                # Yardımcı fonksiyonlar
│   │   ├── __init__.py
│   │   ├── pdf_utils.py      # PDF işleme
│   │   ├── llm_utils.py      # LLM entegrasyonu
│   │   └── llm/              # LLM sağlayıcı istemcileri
│   │       ├── __init__.py
│   │       ├── ollama_client.py
│   │       ├── lmstudio_client.py
│   │       ├── openai_client.py
│   │       ├── gemini_client.py
│   │       └── claude_client.py
│   ├── models/               # Veritabanı modelleri
│   │   ├── __init__.py
│   │   ├── user.py
│   │   └── project.py
│   └── __init__.py           # Uygulama yapılandırması
├── uploads/                  # Yüklenen PDF'ler için klasör
├── .env                      # Ortam değişkenleri
├── requirements.txt          # Gerekli paketler
└── run.py                    # Uygulama başlatma dosyası

🧪 Kullanım

  1. Hesap oluşturun (öğrenci veya öğretmen rolü seçin)
  2. Öğrenci hesabıyla giriş yapıp PDF yükleyin
  3. Öğretmen hesabıyla giriş yapıp PDF'leri görüntüleyin ve analiz edin
  4. LLM Sağlayıcı Seçimi:
    • Öğretmen panelinden "LLM Sağlayıcısı Seçimi" menüsüne tıklayın
    • Yerel veya API tabanlı bir LLM sağlayıcısı seçin
    • API tabanlı bir seçenek için API anahtarınızı girin

🔒 Güvenlik

  • Kullanıcı şifreleri güvenli bir şekilde hash'lenir
  • Oturum yönetimi Flask-Login ile sağlanır
  • Sadece izin verilen dosya türleri yüklenebilir
  • API anahtarları güvenli bir şekilde saklanır
  • CORS yapılandırması kısıtlayıcı bir şekilde ayarlanmıştır
  • URL yönlendirme güvenliği sağlanmıştır
  • Debug modu ortam değişkeni ile kontrol edilir
  • Tüm bağımlılıklar güvenlik açıkları için düzenli olarak güncellenir (Werkzeug ≥3.0.6, Gunicorn ≥23.0.0, Flask-CORS ≥4.0.1)

📄 Lisans

Bu proje MIT lisansı altında lisanslanmıştır.

LLM Sağlayıcıları

Sistem beş farklı LLM sağlayıcı ile çalışabilmektedir:

Yerel LLM Sağlayıcıları

Ollama

  • Kurulum: https://ollama.ai/download
  • Kullanım:
    1. Ollama servisini çalıştırın: ollama serve
    2. Modeli indirin: ollama pull mistral
    3. Çevre değişkeni: LLM_PROVIDER=ollama

LM Studio

  • Kurulum: https://lmstudio.ai/
  • Kullanım:
    1. pip install lmstudio
    2. Uygulamayı açın ve modelleri yükleyin
    3. Settings > API Server bölümünden API sunucusunu etkinleştirin
    4. Çevre değişkeni: LLM_PROVIDER=lmstudio, LLM_STUDIO_MODEL=mistral-nemo-instruct-2407
    5. Dokümantasyon: https://lmstudio.ai/docs/python

API Tabanlı LLM Sağlayıcıları

OpenAI

  • Kurulum: API anahtarınızı OpenAI Dashboard'dan alın
  • Kullanım:
    1. pip install openai>=1.0.0
    2. Çevre değişkeni: LLM_PROVIDER=openai, OPENAI_API_KEY=sk-xxxxxxxxxxxx
    3. Uygulama içinden API anahtarınızı girebilirsiniz

Google Gemini

  • Kurulum: API anahtarınızı Google AI Studio'dan alın
  • Kullanım:
    1. pip install google-generativeai>=0.3.0
    2. Çevre değişkeni: LLM_PROVIDER=gemini, GOOGLE_API_KEY=xxxxxxxxxxxxxx
    3. Uygulama içinden API anahtarınızı girebilirsiniz

Anthropic Claude

  • Kurulum: API anahtarınızı Anthropic Console'dan alın
  • Kullanım:
    1. pip install anthropic>=0.5.0
    2. Çevre değişkeni: LLM_PROVIDER=claude, ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxx
    3. Uygulama içinden API anahtarınızı girebilirsiniz

About

AI destekli PDF sorgulama aracı. Ollama, LM Studio ve API'lar kullanarak PDF belgelerinizden doğal dille anında bilgi edinin.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •