Rumah >Peranti teknologi >AI >Projek Demo DeepSeek-R1 dengan Gradio dan Easyocr
Dalam panduan tangan ini, saya akan menggunakan model DeepSeek-R1 untuk membina pembantu teka-teki matematik yang disepadukan dengan Easyocr dan Gradio.
Saya akan menerangkan langkah demi langkah bagaimana untuk membina aplikasi web berfungsi yang mampu menyelesaikan pelbagai teka-teki matematik dan menghasilkan penyelesaian yang berguna menggunakan keupayaan penalaran yang sangat baik dari model DeepSeek R1.
Jika anda hanya ingin mendapatkan gambaran keseluruhan DeepSeek-R1, saya cadangkan menyemak gambaran DeepSeek-R1 ini. Untuk menyempurnakan model, saya cadangkan tutorial ini mengenai penalaan DeepSeek-R1.
Untuk membina pembantu solver teka -teki kami, kami akan pergi ke langkah -langkah berikut:
Sebelum menyelam ke dalam pelaksanaan, mari pastikan kami mempunyai alat dan perpustakaan berikut yang dipasang:
jalankan arahan berikut untuk memasang kebergantungan yang diperlukan:
!pip install torch gradio pillow easyocr -q
Setelah kebergantungan di atas dipasang, jalankan arahan import berikut:
Import torch from PIL import Image import easyocr import requests import json import gradio as gr
Skrip berikut menunjukkan bagaimana untuk berinteraksi dengan API DeepSeek untuk mendapatkan respons berdasarkan arahan pengguna. Perhatikan bahawa API DeepSeek serasi dengan format OpenAI dan menggunakan URL asas untuk permintaan API.
Anda boleh secara langsung lulus dalam kekunci API (tidak disyorkan untuk alasan privasi), atau jika menggunakan Google Colab seperti saya, anda boleh menyimpan kekunci API menggunakan ciri Rahsia. Sebagai alternatif, anda boleh menggunakan pembolehubah persekitaran.
# DeepSeek API configuration DEEPSEEK_API_URL = "https://api.deepseek.com/v1/chat/completions" # If you're using Colab and storing your key in the Secrets tab: from google.colab import userdata API_KEY = userdata.get('SECRET_KEY') # If you are running this code elsewhere then, replace 'YOUR_API_KEY' with your actual DeepSeek API key. Uncomment the following line of code. #API_KEY = 'YOUR_API_KEY'
Pada masa menerbitkan artikel ini, perkhidmatan DeepSeek berada di bawah beban berat, dan prestasi mereka terdegradasi -saya juga mempunyai kesukaran utama yang menjalankan kod untuk projek ini. Sila periksa halaman status DeepSeek sebelum cuba menjalankan kod dalam projek ini.
Sekarang API ditetapkan, kita boleh bekerja pada ciri kod. Dalam bahagian ini, kami akan memproses imej yang mengandungi teka -teki logik, mengeluarkan teks teka -teki menggunakan OCR, memperbaiki teks, dan menghantarnya ke API DeepSeek untuk menyelesaikannya. Mari kita lihat kodnya, dan kemudian saya akan menerangkannya.
reader = easyocr.Reader(['en']) def solve_puzzle(image): """Extracts the puzzle from the image and sends it to DeepSeek for solving.""" try: # 1. Save the uploaded image temporarily; EasyOCR uses file paths image_path = "uploaded_image.png" image.save(image_path) # 2. Extract text from the image using EasyOCR results = reader.readtext(image_path) extracted_text = " ".join([res[1] for res in results]) # Standardize the text to avoid misinterpretation of "??" as "2?" extracted_text = extracted_text.replace('??', '?') if "?" not in extracted_text: extracted_text += "?" print("Extracted Text:", extracted_text) # Debugging output # 3. Refine the extracted text to standardize expressions refined_text = extracted_text.replace('x', '*').replace('X', '*').replace('=', ' = ').strip() print("Refined Text:", refined_text) # Debugging output # 4. Compose the user message with concise instructions puzzle_prompt = ( f"You are an AI specialized in solving puzzles. Analyze the following, identify hidden patterns or rules, and provide the missing value with step-by-step reasoning in text format. Do not return an answer in Latex." f"\nPuzzle:\n{refined_text}\n" "Format your response strictly as follows:\n" "1. **Given Equation**:\n - (original equations)\n" "2. **Pattern Identified**:\n (explain the hidden logic)\n" "3. **Step-by-step Calculation**:\n - For (input values):\n (calculation and result)\n" "4. **Final Answer**:\n (Answer = X)" ) messages = [ {"role": "user", "content": puzzle_prompt} ] # 5. Optimized API request for faster response data = { "model": "deepseek-reasoner", "messages": messages, "temperature": 0, "max_tokens": 100 } headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } # 6. Send the request to DeepSeek with a timeout response = requests.post(DEEPSEEK_API_URL, headers=headers, json=data, timeout=15) # 7. Check the result if response.status_code == 200: try: json_resp = response.json() return json_resp.get("choices", [{}])[0].get("message", {}).get("content", "Error: No response content.").strip() except json.JSONDecodeError: return "Error: Invalid JSON response from DeepSeek API." else: return f"Error: DeepSeek API failed with status code {response.status_code}, Response: {response.text}" except requests.exceptions.Timeout: return "Error: DeepSeek API request timed out. Please try again." except Exception as e: return f"Error: {str(e)}"
Fungsi Solve_puzzle () memproses imej yang mengandungi teka -teki logik dan menyelesaikannya menggunakan model OCR dan R1. Ia mengikuti langkah -langkah ini:
saluran paip ini menggabungkan OCR untuk pengekstrakan teks dan API DeepSeek untuk penyelesaian teka-teki pintar.
Gradio membolehkan kami membuat antara muka web interaktif untuk aplikasi kami. Coretan kod berikut mewujudkan antara muka web gradio yang mesra pengguna untuk fungsi solve_puzzle (). Antara muka Gradio mengambil input pengguna dan meluluskannya ke model untuk pengesahan.
!pip install torch gradio pillow easyocr -q
Persediaan di atas termasuk tiga komponen:
Mari menguji aplikasi kami dengan teka -teki yang melibatkan matematik dan logik.
Jika anda melihat baris pertama, anda akan melihat 1 4 = 5, dan anda boleh mengatakan ini adalah tambahan yang mudah. Tetapi pada baris kedua kita mempunyai 2 5 = 12, dan kemudian 3 6 = 21. Bolehkah anda mengetahui corak dan menyelesaikan 8 11 =?
Jika anda melihat di sebelah kanan antara muka Gradio, anda akan melihat bahawa aplikasi Solver Teka -teki telah mengenal pasti corak:
Atas ialah kandungan terperinci Projek Demo DeepSeek-R1 dengan Gradio dan Easyocr. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!