urzedasek.pl / app.py
feler404's picture
connect to backedn
b72f108
Raw
History Blame
3.09 kB
import time
import os
import gradio as gr
import requests as requests
URZEDASEK_ENDPOINT = os.getenv("URZEDASEK_ENDPOINT", "http://0.0.0.0:8000/v1/chat/urzedasek")
ANONYMOUS_TOKEN = os.getenv("ANONYMOUS_TOKEN", "8f9fcbd4b8977f20b206afac8b30a12d9d52b7fb")
class UrzedasekInferenceClient():
def chat_completion(
self,
messages,
):
auth_header = {
"Authorization": f"Token {ANONYMOUS_TOKEN}"
}
ret = requests.post(
URZEDASEK_ENDPOINT,
headers=auth_header,
json={
"messages": messages,
},
)
return ret.json()['result']['urzedas_answer_builder']['replies']
client = UrzedasekInferenceClient()
def chunker(result):
for i in range(0, len(result), 40):
time.sleep(0.1)
yield result[i:i + 40]
def respond(
message,
history: list[tuple[str, str]],
):
messages = []
for val in history:
if val[0]:
messages.append({"role": "user", "content": val[0]})
if val[1]:
messages.append({"role": "assistant", "content": val[1]})
messages.append({"role": "user", "content": message})
response = ""
for message in client.chat_completion(messages,):
for chunk in chunker(message):
response += chunk
yield response
with gr.Blocks(fill_height=True) as demo:
gr.Markdown(
"""
# Urzedasek.pl
Czy zmagasz się z biurokracją, która zdaje się wciągać jak czarna dziura? "Urzedasek.pl" przychodzi z pomocą! Nasza aplikacja to Twój biurokratyczny GPS 📍, który poprowadzi Cię przez meandry urzędowych formularzy, decyzji i nie tylko. Od zdobycia dofinansowania 💸, przez rejestrację działalności gospodarczej 💼, aż po wyrabianie paszportów 📔 – jedyne, do czego potrzebujesz, to kilka kliknięć!
Świat, w którym zdobycie zasiłku czy odwołanie się od mandatu nie musi oznaczać straconego popołudnia i nerwów. A wszystko to osiągalne bez wychodzenia z domu 🏡!
Niech każde "muszę to załatwić" stanie się "już to załatwiłem" z "Urzedasek.pl"!
""")
#![urzedasek](https://storage.googleapis.com/llm-crm-nexus0/media/img/urzedasek.png)
chat = gr.ChatInterface(
respond,
examples=[
["Jak zdobyć dofinansowanie?", ""],
["Ukradli mi tablice rejestracyjną co mogę zrobić?", ""],
["Jak mogę założyć działalność gospodarczą?", ""],
["Chce wstąpić do wojska jak to mogę zrobić?", ""],
["Chce uzyskać paszport?", ""],
["Czy mogę zdobyć zasiłek na autyzm bez orzeczenia?", ""],
["Jakie dokumenty należy załatwić po urodzeniu dziecka?", ""],
["Jak mogę odwołać się od mandatu?", ""],
["Gdzie się wyrabia świadectwo urodzenia?", ""],
],
additional_inputs=[
# gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
],
)
if __name__ == "__main__":
demo.launch(share=True)