File size: 1,912 Bytes
142186c
 
 
 
f27f433
142186c
 
 
 
 
 
 
 
 
 
 
199a75d
 
142186c
 
 
 
199a75d
142186c
 
 
 
 
 
 
 
 
a35dbf0
142186c
 
 
 
 
 
a35dbf0
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=5)
    context=context_object[0].page_content+context_object[1].page_content+context_object[2].page_content+context_object[3].page_content+context_object[4].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 obszernie na pytanie korzystając z kontekstu. Stosuj styl wypowiedzi jak w kontekście. Jeżeli nie znajdziesz odpowiedzi, napisz że tego nie wiesz i zaproponuj miejsca, gdzie można jeszcze poszukać.'},
        {'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)