Spaces:
Sleeping
Sleeping
AlihanAyverdi
commited on
Update app.py
Browse files
app.py
CHANGED
@@ -1,82 +1,48 @@
|
|
1 |
-
import gradio as gr
|
2 |
-
import google.generativeai as genai
|
3 |
-
import PyPDF2
|
4 |
import os
|
|
|
|
|
5 |
from dotenv import load_dotenv
|
6 |
|
7 |
-
#
|
8 |
-
load_dotenv(override=True)
|
9 |
-
api_key = os.getenv("GEMINI_API_KEY")
|
10 |
-
genai.configure(api_key=api_key)
|
11 |
|
12 |
-
#
|
13 |
-
|
14 |
-
system_instruction="Sen bir belge sohbet asistanısın. Sorulara sana verilen belgeler içindeki bilgileri tarayarak yanıt vermelisin. Aksi belirtilmediği sürece yanıtları Türkçe olarak ver."
|
15 |
-
)
|
16 |
|
17 |
-
|
18 |
-
|
19 |
-
for pdf_file in pdf_files:
|
20 |
-
with open(pdf_file.name, 'rb') as f:
|
21 |
-
pdf_reader = PyPDF2.PdfReader(f)
|
22 |
-
extracted_text = ""
|
23 |
-
for page in pdf_reader.pages:
|
24 |
-
text = page.extract_text()
|
25 |
-
if text:
|
26 |
-
extracted_text += text
|
27 |
-
extracted_texts.append(extracted_text)
|
28 |
-
return extracted_texts
|
29 |
|
30 |
-
def
|
31 |
-
if not
|
32 |
-
return
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
'content': response.text
|
42 |
-
})
|
43 |
-
return history
|
44 |
|
|
|
45 |
with gr.Blocks() as demo:
|
46 |
-
gr.Markdown("#
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
|
|
|
|
52 |
)
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
})
|
63 |
-
return "", history
|
64 |
-
|
65 |
-
def on_generate_response(history, docs_value):
|
66 |
-
if not docs_value:
|
67 |
-
history.append({
|
68 |
-
'role': 'assistant',
|
69 |
-
'content': "Lütfen önce belge(leri) yükleyin."
|
70 |
-
})
|
71 |
-
return history
|
72 |
-
|
73 |
-
if history:
|
74 |
-
history = chat_with_documents(history, docs_value)
|
75 |
-
return history
|
76 |
-
|
77 |
-
msg.submit(on_user_message, [msg, chatbot], [msg, chatbot]).then(
|
78 |
-
on_generate_response, [chatbot, docs], chatbot
|
79 |
-
)
|
80 |
-
clear.click(lambda: None, None, chatbot, queue=False)
|
81 |
|
82 |
-
demo.launch()
|
|
|
|
|
|
|
|
|
1 |
import os
|
2 |
+
import google.generativeai as genai
|
3 |
+
import gradio as gr
|
4 |
from dotenv import load_dotenv
|
5 |
|
6 |
+
# .env dosyasını yükleyin
|
7 |
+
load_dotenv(dotenv_path='.env', override=True)
|
|
|
|
|
8 |
|
9 |
+
# API anahtarını ayarlayın
|
10 |
+
genai.configure(api_key=os.getenv("GEMINI_API_KEY"))
|
|
|
|
|
11 |
|
12 |
+
# System instruction tanımlama
|
13 |
+
system_instruction = """Sen Türk mitolojisini çok iyi bilen bir yapay zeka asistanısın ve adın bundan sonra Kam. Sana bu konuda soru soranlara bu konu hakkında derinlemesine bilgi vermeni istiyorum. Bunun dışındaki konulara girmemek."""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
15 |
+
def generate_text(prompt, model_name):
|
16 |
+
if not model_name:
|
17 |
+
return "Modeli Kontrol Ediniz"
|
18 |
+
try:
|
19 |
+
# Sistem talimatını prompt'a ekleyin
|
20 |
+
full_prompt = f"{system_instruction}\n\n{prompt}"
|
21 |
+
model = genai.GenerativeModel(model_name=model_name)
|
22 |
+
response = model.generate_content(full_prompt)
|
23 |
+
return response.text
|
24 |
+
except Exception as e:
|
25 |
+
return f"Hata Oluştu. Hata Kodu: {str(e)}"
|
|
|
|
|
|
|
26 |
|
27 |
+
# gradio arayüzü
|
28 |
with gr.Blocks() as demo:
|
29 |
+
gr.Markdown("# Geminichat")
|
30 |
+
gr.Markdown('Gemini\'ye sorular sorun')
|
31 |
+
|
32 |
+
with gr.Accordion("Modeller", open=False):
|
33 |
+
select_model = gr.Dropdown(
|
34 |
+
['gemini-1.5-flash', 'gemini-exp-1114', 'gemini-1.5-pro'],
|
35 |
+
label="Modeller",
|
36 |
+
value="gemini-1.5-pro"
|
37 |
)
|
38 |
+
with gr.Row():
|
39 |
+
text_input = gr.Textbox(label="Sorunuzu yazın.", placeholder="Enter tuşuna basarak gönderebilirsiniz")
|
40 |
+
with gr.Row():
|
41 |
+
btn = gr.Button("Sor")
|
42 |
+
|
43 |
+
with gr.Row():
|
44 |
+
text_output = gr.Textbox(label="Yanıtlar:")
|
45 |
+
btn.click(fn=generate_text, inputs=[text_input, select_model], outputs=text_output)
|
46 |
+
text_input.submit(fn=generate_text, inputs=[text_input, select_model], outputs=text_output)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
|
48 |
+
demo.launch()
|