-
Notifications
You must be signed in to change notification settings - Fork 0
/
fullstack_ui.py
57 lines (44 loc) · 2.33 KB
/
fullstack_ui.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import streamlit as st
from service import upload_documents, ask_question
from user import User
from fastapi import UploadFile
async def main():
st.title("Ücretsiz Türkçe RAG")
st.write("Birkaç dosya yüklenebilir, her yükleme eskisini ezer. Dosya sayısına ve büyüklüğüne göre yükleme işlemi uzun sürebilir.")
# Username input box
username = st.text_input("Kullanıcı adı girin (sizi temsil edecek bir şey olması yeterli):")
# API key input box
api_key = st.text_input("Google API anahtarınızı ekleyin (boş bırakılırsa varsayılan anahtara istek atılacaktır, kendi anahtarınızı almanız önerilir. Anahtar alım videosu: [https://www.youtube.com/watch?v=brCkpzAD0gc]):", type="password")
# Allow multiple file uploads
files = st.file_uploader("Dosyalarınızı yükleyin", accept_multiple_files=True)
if files:
st.write("Yüklenen dosya sayısı:", len(files))
# Convert file-like objects to UploadFile objects
files = [UploadFile(filename=file.name, content=file.getvalue()) for file in files]
# Display the names and sizes of the uploaded files
for file in files:
file_details = {"FileName": file.name, "FileSize": len(file.getvalue())}
st.write(file_details)
with st.spinner('Yükleniyor...'):
user = User(username=username) # Assuming username is defined elsewhere
response, status_code = await upload_documents(user, files)
if status_code == 200:
st.success("Cevap: " + response)
else:
st.error("Hata:", response)
question = st.text_area("Dokümanınıza sormak istediğiniz soruyu girin (sorunuz ne kadar detaylı olursa o kadar doğru bir cevap alırsınız): ")
if st.button("Sor"):
if not question:
st.warning("Lütfen bir soru girin.")
elif not username:
st.warning("Lütfen kullanıcı ismi girin.")
else:
with st.spinner('Soru cevaplanıyor...'):
user = User(username=username)
response, status_code = ask_question(user, question, api_key)
if status_code == 200:
st.success("Cevap: " + response)
else:
st.error("Hata:", response)
if __name__ == "__main__":
main()