Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ°Ρ-Π±ΠΎΡΠΎΠ². ΠΠ°Π΄Π°ΡΠΈ ΡΠ°Ρ-Π±ΠΎΡΠ°: ΠΎΡΠ²Π΅ΡΡ Π½Π° ΡΠΈΠΏΠΎΠ²ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ, ΡΠ±ΠΎΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: Telegram. ΠΡΠΎΠ΄ΡΠΊΡ: Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Π’Π΅Ρ
Π·Π°Π΄Π°Π½ΠΈΠ΅ Π΅ΡΡΡ. ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π½Π° python Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΠ°Ρ-Π±ΠΎΡΠ° Ρ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ GPT3 ΠΎΡ OpenAI Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ
ΡΠ΅ΡΠ΅Π· Π±ΡΠ°ΡΠ·Π΅Ρ ΡΠ°ΠΉΠ»Π°Ρ
ΠΈ ΠΊΠΎΠ΄ web ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΊ Π½Π΅ΠΌΡ. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΌΠ½Π΅ Π½ΡΠΆΠ΅Π½ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ Π΅ΠΌΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π²ΠΈΠ΄Π΅ Docx ΠΈ PDF ΠΈ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ. Π’ΠΈΠΏΠ° ΡΡΠ°ΠΊΠΈΠΉ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊ ΠΏΠΎ ΠΌΠΎΠΈΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ. ΠΠΎΠΆΠ΅Ρ ΡΡΠΎ ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ChatGPT, ΠΏΡΠΎΡΡΠΎ Π½Π° Π½Π΅Π³ΠΎ Ρ Π²ΠΈΠ΄Π΅Π» ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠ°ΠΌΠΈΠΌ ChatGPT, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ) import gradio as gr import openai import re # ΠΠ°Π΄Π°Π΅ΠΌ API-ΠΊΠ»ΡΡ Π΄Π»Ρ OpenAI openai.api_key = “YOUR_API_KEY_HERE“ # ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ GPT-3 model_engine = “text-davinci-002“ model = openai.CompletionV3( engine=model_engine, prompt=None, max_tokens=1024, n=1, stop=None, temperature=0.7, ) # Π€ΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΡΠ²Π΅ΡΠ° Π½Π° Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ def generate_response(question, uploaded_file=None): # ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² if uploaded_file is not None: # ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ΅ΠΊΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° file_content = uploaded_file.read() # ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ» ΡΠ²Π»ΡΠ΅ΡΡΡ PDF, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ PyPDF2 Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° if uploaded_file.name.endswith(“.pdf“): import PyPDF2 pdf_reader = PyPDF2.PdfFileReader(file_content) file_content = ““ for i in range(pdf_reader.getNumPages()): page = pdf_reader.getPage(i) file_content += page.extractText() # ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ» ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΌ Word, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ python-docx Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° elif uploaded_file.name.endswith(“.docx“): import docx doc = docx.Document(file_content) file_content = “\n“.join([para.text for para in doc.paragraphs]) # ΠΠ½Π°ΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΠΎΡΠΈΠ±ΠΊΡ else: return “ΠΡΠΈΠ±ΠΊΠ°: Π€Π°ΠΉΠ» Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ ΡΠΈΠΏΠΎΠΌ (PDF ΠΈΠ»ΠΈ Word)“ # ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΠΊ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ question += “\n“ + file_content # ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΎΡΠ²Π΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ GPT-3 prompt = question.strip() response = model.complete(prompt=prompt) # ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΠ° ΠΈΠ· Π²ΡΡ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
ΠΌΠΎΠ΄Π΅Π»ΠΈ answer = response.choices[0].text answer = re.sub('[^0-9a-zA-Z.,?!Π°-ΡΠ-Π―ΡΠ\n ]+', '', answer) return answer.strip() # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Gradio input_file = gr.inputs.File(accept=[“.pdf“, “.docx“], label=“ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΡΠ°ΠΉΠ» (PDF ΠΈΠ»ΠΈ Word, Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ)“) input_text = gr.inputs.Textbox(label=“ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π²Π°Ρ Π²ΠΎΠΏΡΠΎΡ“) output_text = gr.outputs.Textbox(label=“ΠΡΠ²Π΅Ρ“) gr.Interface( fn=generate_response, inputs=[input_text, input_file], outputs=output_text, title=“Π§Π°Ρ-Π±ΠΎΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ GPT-3, ΠΎΠ±ΡΡΠ΅Π½Π½ΡΠΉ Π½Π° Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ
ΡΠ°ΠΉΠ»Π°Ρ
“, description=“ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π²Π°Ρ Π²ΠΎΠΏΡΠΎΡ ΠΈΠ»ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΡΠ°ΠΉΠ» (PDF ΠΈΠ»ΠΈ Word) Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ°.“, ).launch().