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)