TnHermione is an AI-powered chatbot designed to assist users with a variety of tasks. This bot can answer questions, generate images based on prompts, and switch between different languages to provide a personalized experience.
- Answering Questions: Provides detailed and informative responses to user queries.
- Image Generation: Generates images based on user prompts.
- Language Support: Supports multiple languages and can switch languages based on user preference.
- Sensitive Information Filtering: Detects and filters out sensitive information in user messages.
- Command Support: Recognizes and executes a set of predefined commands.
- Prometheus Metrics: Provides a
/metrics
endpoint for Prometheus to scrape.
- /clean: Clears the chat history. Usage:
/clean
- /language: Changes the user's language preference. Usage:
/language <language_code>
(e.g.,/language en
) - /image: Generates an image based on the provided prompt. Usage:
/image <prompt>
(e.g.,/image a sunset over a mountain
) - /help: Displays the list of supported commands and their usage. Usage:
/help
- /nolog: Disables logging of messages and responses. Usage:
/nolog
- /log: Enables logging of messages and responses. Usage:
/log
- GET /: Used to verify that the application is running.
- POST /api/ask: Used to answer user questions.
- Request Body:
{ "question": "your question here", "user_id": "user_id" }
- Response:
{ "answer": "Response from the AI" }
- Request Body:
- POST /api/messages: Used for integration with Microsoft Teams.
- GET /metrics: Provides Prometheus metrics for monitoring.
The application filters out sensitive information based on specific keywords. If a message contains any of these keywords, the bot will respond with an error message indicating which line and keyword caused the issue. The following keywords are filtered:
- password
- passwd
- pass
- secret
- key
- apikey
- token
- ssh-key
- private-key
- credential
- credentials
If a message contains a sensitive keyword, the bot will respond with an error message similar to the following:
Your message contains sensitive information and cannot be processed. "Line number" contains the keyword "keyword".
-
Clone the repository
-
Navigate to the project directory:
cd tnhermione
-
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install the required dependencies:
pip install -r requirements.txt
-
Set up environment variables:
cp .env.example .env # Edit the .env file and add your API keys and other settings
-
Run the application:
python app.py
You can also run the application using Docker.
-
Build the Docker image:
docker build -t tnhermione .
-
Run the Docker container:
docker run -d -p 3978:3978 --env-file .env tnhermione
- The default language for the application’s responses and error messages is Turkish.
- You can change the language anytime using the
/language
command (e.g.,/language en
for English).
TnHermione, kullanıcılara çeşitli görevlerde yardımcı olmak için tasarlanmış yapay zeka destekli bir sohbet botudur. Bu bot, soruları cevaplayabilir, istemlere dayalı olarak görüntüler oluşturabilir ve kullanıcı tercihine göre farklı diller arasında geçiş yapabilir.
- Soruları Cevaplama: Kullanıcı sorgularına ayrıntılı ve bilgilendirici yanıtlar sağlar.
- Görüntü Oluşturma: Kullanıcı istemlerine dayalı olarak görüntüler oluşturur.
- Dil Desteği: Birden fazla dili destekler ve kullanıcı tercihine göre dil değiştirebilir.
- Hassas Bilgi Filtreleme: Kullanıcı mesajlarındaki hassas bilgileri tespit eder ve filtreler.
- Komut Desteği: Önceden tanımlanmış bir dizi komutu tanır ve uygular.
- Prometheus Metrikleri: Prometheus'un toplaması için
/metrics
endpointi sağlar.
- /clean: Sohbet geçmişini temizler. Kullanım:
/clean
- /language: Kullanıcının dil tercihlerini değiştirir. Kullanım:
/language <dil_kodu>
(örneğin,/language en
) - /image: Belirtilen isteme dayalı olarak bir resim oluşturur. Kullanım:
/image <istem>
(örneğin,/image a sunset over a mountain
) - /help: Desteklenen komutları ve kullanım örneklerini gösterir. Kullanım:
/help
- /nolog/: Mesaj ve yanıtların loglanmasını kapatır. Kullanım:
/nolog
- /log/: Mesaj ve yanıtların loglanmasını açar. Kullanım:
/log
- GET /: Uygulamanın çalıştığını doğrulamak için kullanılır.
- POST /api/ask: Kullanıcının sorularını yanıtlamak için kullanılır.
- Request Body:
{ "question": "sorunuz burada", "user_id": "kullanıcı_id" }
- Response:
{ "answer": "Yapay zeka tarafından verilen yanıt" }
- Request Body:
- POST /api/messages: Microsoft Teams ile entegrasyon için kullanılır.
- GET /metrics: İzleme için Prometheus metriklerini sağlar.
Uygulama, belirli anahtar kelimelere dayalı olarak hassas bilgileri filtreler. Bir mesaj bu anahtar kelimelerden herhangi birini içeriyorsa, bot hangi satırda ve hangi anahtar kelimenin soruna neden olduğunu belirten bir hata mesajı ile yanıt verir. Filtrelenen anahtar kelimeler şunlardır:
- password
- passwd
- pass
- secret
- key
- apikey
- token
- ssh-key
- private-key
- credential
- credentials
Bir mesaj hassas bir anahtar kelime içeriyorsa, bot aşağıdakine benzer bir hata mesajı ile yanıt verir:
Mesajınız hassas bilgi içeriyor ve işlenemiyor. "Satır numarası" satırında "anahtar kelime" bulundu.
-
Repoyu klonlayın
-
Proje dizinine gidin:
cd tnhermione
-
Bir sanal ortam oluşturun ve etkinleştirin:
python -m venv venv source venv/bin/activate # Windows'da `venv\Scripts\activate` kullanın
-
Gerekli bağımlılıkları yükleyin:
pip install -r requirements.txt
-
Ortam değişkenlerini ayarlayın:
cp .env.example .env # .env dosyasını düzenleyin ve API anahtarlarınızı ve diğer ayarları ekleyin
-
Uygulamayı çalıştırın:
python app.py
Uygulamayı Docker kullanarak da çalıştırabilirsiniz.
-
Docker imajını oluşturun:
docker build -t tnhermione .
-
Docker konteynerini çalıştırın:
docker run -d -p 3978:3978 --env-file .env tnhermione
- Uygulamanın varsayılan yanıt ve hata mesajları Türkçedir.
- İstediğiniz zaman
/language
komutunu kullanarak dili değiştirebilirsiniz (örneğin, İngilizce için/language en
).