Download app.py from JosephH/TestGPT: direct link, hf CLI and curl.
- Browser
- Download file 1.41 kB
-
https://huggingface.co/spaces/JosephH/TestGPT/resolve/main/app.py
- Command line
-
hf download hf://spaces/JosephH/TestGPT/app.py
-
curl -L -o app.py https://huggingface.co/spaces/JosephH/TestGPT/resolve/main/app.py
1.41 kB
| import openai | |
| import faiss | |
| import numpy as np | |
| import os | |
| import gradio as gr | |
| openai.api_key = os.environ['api_top'] | |
| text_file_path = 'risale.txt' | |
| # read the text file | |
| with open(text_file_path, 'r', encoding='utf-8') as file: | |
| text_content = file.read() | |
| # split text into sentences | |
| allText = [sentence.strip() for sentence in text_content.split('<br>') if sentence.strip()] | |
| def encode_open(input): | |
| # you can change model if you want different | |
| MODEL = "text-embedding-ada-002" | |
| res = openai.Embedding.create( | |
| input=input, engine=MODEL | |
| ) | |
| embeds = [record['embedding'] for record in res['data']] | |
| import torch | |
| embeds=torch.FloatTensor(embeds) | |
| return embeds | |
| encoded_data=encode_open(allText) | |
| d=encoded_data.shape[1] | |
| index = faiss.IndexIDMap(faiss.IndexFlatIP(d)) | |
| index.add_with_ids(encoded_data, np.arange(encoded_data.shape[0])) | |
| def search_openai_pdf(query, k=10): | |
| try: | |
| query_vector = encode_open([query]) | |
| top_k = index.search(query_vector, k) | |
| return [ | |
| allText[_id] for _id in top_k[1][0] | |
| ] | |
| except Exception as e: | |
| return ["Hata oluştu", e] | |
| iface = gr.Interface( | |
| fn=search_openai_pdf, | |
| inputs=gr.Textbox(placeholder="Fihristte aramak için bir şeyler yaz.",label='query'), | |
| outputs=gr.Textbox(label="Sonuçlar"), | |
| live=False, | |
| title="Sözler Fihristi Anlamsal Arama Motoru" | |
| ) | |
| iface.launch() | |