Bu framework, farklı dil modellerini (LLM) ve RAG (Retrieval-Augmented Generation) sistemlerini entegre eden modüler bir chatbot altyapısı sunar. OpenAI GPT ve Ollama gibi farklı modelleri destekler ve özelleştirilebilir bilgi tabanı ile zenginleştirilmiş yanıtlar üretebilir.
- OpenAI GPT: GPT-3.5 ve GPT-4 modelleri
- Ollama: Yerel modeller ve özelleştirilmiş LLM'ler
- Genişletilebilir: Yeni model servisleri kolayca eklenebilir
- Çoklu RAG sistemi desteği
- Ağırlıklı bilgi kaynakları
- Özelleştirilebilir belge kaynakları
- Bağlam zenginleştirme
- PostgreSQL ile güçlü veri yönetimi
- Asenkron veritabanı işlemleri
- Konuşma geçmişi ve oturum yönetimi
- FastAPI ile modern REST API
- Streaming yanıt desteği
- Swagger/OpenAPI dokümantasyonu
plaintext chatbot_framework/ ├── api/ # API şemaları ve bağımlılıklar ├── core/ # Temel bileşenler │ ├── database/ # Veritabanı modelleri │ ├── models/ # Asistan modeli │ ├── rag/ # RAG sistemleri │ └── services/ # Model servisleri ├── routers/ # API route'ları └── scripts/ # Yardımcı scriptler
Virtual environment oluşturun (opsiyonel ama önerilen) python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows Gereksinimleri yükleyin pip install -r requirements.txt
- PostgreSQL'i yükleyin
- Yeni bir veritabanı oluşturun:
CREATE DATABASE chatbot_db;
.env
dosyası oluşturun:
Database Configuration
DB_NAME=chatbot_db
DB_USER=postgres
DB_PASSWORD=your_password
DB_HOST=localhost
DB_PORT=5432
OpenAI Configuration
OPENAI_API_KEY=your_openai_key
python scripts/create_database.py
uvicorn app:app --reload
curl -X POST "http://localhost:8000/assistants/create"
-H "Content-Type: application/json"
-d '{
"name": "my_assistant",
"model_type": "openai",
"system_message": "You are a helpful assistant."
}'
curl -X POST "http://localhost:8000/assistants/my_assistant/chat"
-H "Content-Type: application/json"
-d '{
"message": "What is the meaning of life?",
"stream": false
}'
curl "http://localhost:8000/assistants/my_assistant/chat/stream?message=Tell+me+a+story"
curl -X POST "http://localhost:8000/rag/my_assistant/add"
-H "Content-Type: application/json"
-d '{
"name": "company_docs",
"weight": 1.0,
"enabled": true,
"documents": {
"doc1": "Company information...",
"doc2": "Product details..."
}
}'
core/services/
altında yeni bir servis modülü oluşturunBaseLanguageModel
sınıfını implement edin:
from .base_model import BaseLanguageModel class NewModelService(BaseLanguageModel): async def generate_text(self, prompt: str) -> str:
pass async def generate_stream(self, prompt: str):
pass
core/rag/
altında yeni bir RAG modülü oluşturunBaseRAG
sınıfını implement edin:
from .base_rag import BaseRAG
class NewRAGSystem(BaseRAG):
async def query(self, query: str) -> dict:
Tabloları kontrol et python scripts/check_tables.py Test verisi ekle python scripts/test_database.py
Swagger UI: http://localhost:8000/docs
- Chatbot asistanlarının yapılandırması
- Model tipi ve sistem mesajı
- RAG sistem entegrasyonu
- Konuşma oturumları
- Kullanıcı ve oturum takibi
- Mesaj geçmişi yönetimi
- Kullanıcı ve asistan mesajları
- RAG sonuçları ile ilişki
- Zaman damgalı kayıtlar
- RAG sistem yapılandırması
- Ağırlık ve durum yönetimi
- Asistan ilişkileri
- RAG sorgu sonuçları
- Bağlam ve meta veriler
- Mesaj ilişkileri
- Projeyi fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature
) - Değişikliklerinizi commit edin (
git commit -m 'Add amazing feature'
) - Branch'inizi push edin (
git push origin feature/amazing-feature
) - Pull Request oluşturun
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE
dosyasına bakın.
Proje Sahibi - @ahmetmnr
Proje Linki: https://github.com/ahmetmnr/chatbot_framework