File size: 1,756 Bytes
142186c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from langchain_chroma import Chroma
from langchain_huggingface import HuggingFaceEmbeddings
from openai import OpenAI
import gradio as gr
from langchain.llms import OpenAI as LangchainOpenAI

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(),
    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(inbrowser=True)