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.
- Öğ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ı
- Python 3.8+
- MongoDB
- LLM Sağlayıcıları (Aşağıdaki seçeneklerden birini kurabilirsiniz):
- Yerel LLM Seçenekleri:
- API Tabanlı LLM Seçenekleri:
- OpenAI API (API anahtarı gerekli)
- Google Gemini API (API anahtarı gerekli)
- Anthropic Claude API (API anahtarı gerekli)
- Miniconda ile yeni bir ortam oluşturun:
conda create -n flask_llm_app python=3.10
conda activate flask_llm_app
- Proje deposunu klonlayın:
git clone https://github.com/kullaniciadi/smart-doc-insight.git
cd smart-doc-insight
- Gerekli paketleri yükleyin:
pip install -r requirements.txt
-
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:
- OpenAI: API anahtarınızı buradan alın
- Google Gemini: API anahtarınızı Google AI Studio'dan alın
- Anthropic Claude: API anahtarınızı Anthropic Console'dan alın
-
-
MongoDB'yi başlatın:
# MongoDB'nin çalıştığından emin olun
.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
- Uygulamayı başlatın:
python run.py
- Tarayıcınızdan
http://localhost:5000
adresine gidin.
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ı
- Hesap oluşturun (öğrenci veya öğretmen rolü seçin)
- Öğrenci hesabıyla giriş yapıp PDF yükleyin
- Öğretmen hesabıyla giriş yapıp PDF'leri görüntüleyin ve analiz edin
- 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
- 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)
Bu proje MIT lisansı altında lisanslanmıştır.
Sistem beş farklı LLM sağlayıcı ile çalışabilmektedir:
- Kurulum: https://ollama.ai/download
- Kullanım:
- Ollama servisini çalıştırın:
ollama serve
- Modeli indirin:
ollama pull mistral
- Çevre değişkeni:
LLM_PROVIDER=ollama
- Ollama servisini çalıştırın:
- Kurulum: https://lmstudio.ai/
- Kullanım:
pip install lmstudio
- Uygulamayı açın ve modelleri yükleyin
- Settings > API Server bölümünden API sunucusunu etkinleştirin
- Çevre değişkeni:
LLM_PROVIDER=lmstudio
,LLM_STUDIO_MODEL=mistral-nemo-instruct-2407
- Dokümantasyon: https://lmstudio.ai/docs/python
- Kurulum: API anahtarınızı OpenAI Dashboard'dan alın
- Kullanım:
pip install openai>=1.0.0
- Çevre değişkeni:
LLM_PROVIDER=openai
,OPENAI_API_KEY=sk-xxxxxxxxxxxx
- Uygulama içinden API anahtarınızı girebilirsiniz
- Kurulum: API anahtarınızı Google AI Studio'dan alın
- Kullanım:
pip install google-generativeai>=0.3.0
- Çevre değişkeni:
LLM_PROVIDER=gemini
,GOOGLE_API_KEY=xxxxxxxxxxxxxx
- Uygulama içinden API anahtarınızı girebilirsiniz
- Kurulum: API anahtarınızı Anthropic Console'dan alın
- Kullanım:
pip install anthropic>=0.5.0
- Çevre değişkeni:
LLM_PROVIDER=claude
,ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxx
- Uygulama içinden API anahtarınızı girebilirsiniz