roadmap-ai / app.py
enesmanan's picture
add files
3194dec verified
import os
from dotenv import load_dotenv
import google.generativeai as genai
import gradio as gr
load_dotenv()
genai.configure(api_key=os.getenv('GEMINI_API_KEY'))
MODEL_CONFIG = {
'temperature': 0.7,
'top_p': 0.95,
'top_k': 40,
'max_output_tokens': 2048,
}
SYSTEM_PROMPT = """Sen bir öğrenme yol haritası danışmanısın. Kullanıcıların herhangi bir konuda (teknik veya teknik olmayan) adım adım öğrenme planları oluşturmasına yardım ediyorsun.
Her roadmap için şunları sun:
1. Genel Bakış: Konu neden önemli
2. Ön Koşullar: Ne bilmesi gerekiyor
3. Öğrenme Yolu: Fazlar halinde (her faz için süre, konular, kaynaklar, projeler)
4. Kilometre Taşları: İlerleme ölçüm noktaları
5. İpuçları: Dikkat edilmesi gerekenler
Destekleyici, gerçekçi, Türkçe/İngilizce kaynaklar öner. Gerekirse detay sor."""
model = genai.GenerativeModel(
model_name='gemini-2.0-flash',
generation_config=MODEL_CONFIG,
system_instruction=SYSTEM_PROMPT
)
def chat_function(message, history):
if not message or message.strip() == "":
return "Lütfen bir mesaj yazın."
chat_history = []
for human, assistant in history:
if human and assistant:
chat_history.append({"role": "user", "parts": [human]})
chat_history.append({"role": "model", "parts": [assistant]})
chat = model.start_chat(history=chat_history)
response = chat.send_message(message.strip())
return response.text
demo = gr.ChatInterface(
fn=chat_function,
title="Roadmap AI",
description="Herhangi bir konuda öğrenme yol haritası oluşturun",
examples=[
"Python öğrenmek istiyorum",
"Machine learning için roadmap",
"Fitness ve sağlıklı yaşam planı",
"İngilizce nasıl geliştiririm?"
],
theme="soft"
)
if __name__ == "__main__":
demo.launch(share=True)