autodocs / app.py
moctardiallo's picture
Merge branch 'rag'
bc4c927
from model import model
import gradio as gr
with gr.Blocks(fill_height=True) as demo:
with gr.Accordion("Voir les Details"):
gr.Markdown("""
Cette application vous permet de chatter directement avec une page de documentation pour generer du code que vous demandez.
Vous indiquez l'url de la page, ensuite vous posez votre question dans le chat. Alors le contenu de la page est recupere (grace a du scraping) puis decompose en blocks. Puis une recherche semantique est effectue a travers ces bloques pour retourner uniquement les plus signifiants par rapport a la question posee. Ces nouveaux blocks constituent alors le contexte dans lequel le LLM doit repondre a la question, ce que ces modeles savent tres bien faire. La reponse est enfin affichee. Nous obtenons ainsi en conclusion ce qu'on appelle un RAG (Retrieval Augmented Generation).
""")
with gr.Row(equal_height=True):
with gr.Column(min_width=200, scale=0):
max_tokens = gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens", render=True)
temperature = gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature", render=True)
top_p = gr.Slider(
minimum=0.1,
maximum=1.0,
value=0.95,
step=0.05,
label="Top-p (nucleus sampling)",
render=True,
)
with gr.Column():
url = gr.Textbox(value="https://www.gradio.app/docs/gradio/chatinterface", label="Docs URL", render=True)
chat = gr.ChatInterface(
# model.respond,
model.predict,
# model.rag,
additional_inputs=[
url,
max_tokens,
temperature,
top_p,
],
type="messages",
)
if __name__ == "__main__":
demo.launch()