|
from langchain_chroma import Chroma |
|
from langchain_huggingface import HuggingFaceEmbeddings |
|
from openai import OpenAI |
|
import gradio as gr |
|
|
|
|
|
client=OpenAI() |
|
embeddings = HuggingFaceEmbeddings(model_name='radlab/polish-sts-v2') |
|
vector_store=Chroma( |
|
collection_name='szuflada', |
|
embedding_function=embeddings, |
|
persist_directory='baza' |
|
) |
|
|
|
|
|
def ask(pytanie): |
|
context_object=vector_store.similarity_search(query=pytanie, k=3) |
|
context=context_object[0].page_content+context_object[1].page_content+context_object[2].page_content |
|
answer=client.chat.completions.create( |
|
model='gpt-4o-mini', |
|
messages=[ |
|
{'role': 'system', |
|
'content': 'Nazywasz się Piotr Witek i jesteś entuzjastą technologii asystujących dla osób niewidomych. Odpowiadasz na pytanie korzystając z kontekstu. Stosuj styl wypowiedzi jak w kontekście. Jeżeli odnosisz się do jakiegoś zasobu, dodaj łącze do niego.'}, |
|
{'role': 'user', |
|
'content': 'Pytanie: '+pytanie+'\nKontekst:\n'+context} |
|
] |
|
) |
|
return answer.choices[0].message.content |
|
|
|
demo=gr.Interface( |
|
fn=ask, |
|
inputs=gr.Text(label='Tu wpisz pytanie', autofocus=True), |
|
outputs=gr.Markdown(show_copy_button=True), |
|
title='Moja szuflada AI', |
|
description='To jest moja szuflada oparta o sztuczną inteligencję. W okienku Pytanie wpisz pytanie i naciśnij Enter. Odpowiedź wyświetli się obok. Jeżeli chcesz ją skopiować, to jest do tego przycisk. Jeżeli zaś chcesz pomóc w poprawianiu, kliknij na 1 z przycisków "Jest dobrze" lub "Co za brednie!".', |
|
allow_flagging='manual', |
|
clear_btn='Wyczyść', |
|
flagging_options=['Jestdobrze', 'Co za brednie'], |
|
submit_btn='Zapytaj' |
|
).launch(show_api=False, inline=False) |