Heim >Technologie-Peripheriegeräte >KI >Deepseek-R1 Demo-Projekt mit Gradio und Easyocr
In diesem praktischen Leitfaden werde ich das Deepseek-R1-Modell verwenden, um einen in Easyocr und Gradio integrierten Mathematik-Puzzle-Solver-Assistenten zu erstellen.
Ich werde schrittweise erklären, wie Sie eine funktionale Web-App erstellen können, mit der eine breite Palette mathematischer Rätsel gelöst und hilfreiche Lösungen unter Verwendung der hervorragenden Argumentationsfunktionen des Deepseek R1-Modells generiert werden können.
Wenn Sie nur einen Überblick über Deepseek-R1 erhalten möchten, empfehle ich, diesen Überblick über Deepseek-R1 zu überprüfen. Um das Modell zu optimieren, empfehle ich dieses Tutorial über die Feinabstimmung von Deepseek-R1.
Um unseren Rätsel Solver -Assistenten aufzubauen, werden wir die folgenden Schritte durchlaufen:
Bevor Sie in die Implementierung eintauchen, stellen wir sicher, dass die folgenden Tools und Bibliotheken installiert sind:
Führen Sie die folgenden Befehle aus, um die erforderlichen Abhängigkeiten zu installieren:
!pip install torch gradio pillow easyocr -q
Sobald die obigen Abhängigkeiten installiert sind, führen Sie die folgenden Importbefehle aus:
Import torch from PIL import Image import easyocr import requests import json import gradio as gr
Das folgende Skript zeigt, wie Sie mit der Deepseek -API interagieren, um Antworten basierend auf Benutzeranforderungen zu erhalten. Beachten Sie, dass Deepseeks API mit OpenAIs Format kompatibel ist und eine Basis -URL für API -Anforderungen verwendet.
Sie können entweder die API -Taste direkt übergeben (nicht aus Datenschutzgründen empfohlen) oder bei Verwendung von Google Colab wie mir nicht die API -Taste mithilfe der Secrets -Funktion speichern. Alternativ können Sie Umgebungsvariablen verwenden.
# 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'
Zum Zeitpunkt der Veröffentlichung dieses Artikels sind die Dienste von Deepseek unter starker Belastung, und ihre Leistung wird verschlechtert - ich hatte auch große Schwierigkeiten, den Code für dieses Projekt auszuführen. Bitte überprüfen Sie die Statusseite von Deepseek, bevor Sie versuchen, den Code in diesem Projekt auszuführen.
Jetzt ist die API festgelegt, wir können an den Codefunktionen arbeiten. In diesem Abschnitt verarbeiten wir ein Bild, das ein logisches Puzzle enthält, den Puzzlext mit OCR extrahieren, den Text verfeinern und zur Lösung an die Deepseek -API senden. Lassen Sie uns zuerst den Code sehen, und dann werde ich ihn erklären.
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)}"
Die Funktion von LELVE_PUZZLE () verarbeitet ein Bild, das ein logisches Puzzle enthält, und löst es mit dem OCR- und R1 -Modell. Es folgt folgende Schritte:
Diese Pipeline kombiniert OCR für die Textentnahme und die Deepseek-API für intelligente Rätsellösung.
Gradio können wir eine interaktive Weboberfläche für unsere Anwendung erstellen. Der folgende Code-Snippet erstellt eine benutzerfreundliche Gradio-Weboberfläche für die Funktion von LELVE_PUZZLECZEN (). Die Gradio -Schnittstelle nimmt die Eingaben des Benutzers an und übergibt sie an das Modell zur Validierung.
!pip install torch gradio pillow easyocr -q
Das obige Setup enthält drei Komponenten:
Testen wir unsere App mit einem Puzzle, das Mathematik und Logik umfasst.
Wenn Sie sich die erste Zeile ansehen, sehen Sie 1 4 = 5, und Sie können sagen, dass dies eine einfache Ergänzung ist. Aber in der zweiten Reihe haben wir 2 5 = 12 und dann 3 6 = 21. Können Sie das Muster herausfinden und 8 11 =?
lösenWenn Sie auf der rechten Seite der Gradio -Schnittstelle schauen, sehen Sie, dass die Puzzle -Solver -App das Muster identifiziert hat:
In diesem Tutorial haben wir einen Assistenten für Mathematik -Puzzle -Solver mit Deepseek R1 in Kombination mit OCR und Gradio zur Lösung mathematischer Rätsel erstellt. Um mit dem neuesten in KI Schritt zu halten, empfehle ich diese Blogs:
Das obige ist der detaillierte Inhalt vonDeepseek-R1 Demo-Projekt mit Gradio und Easyocr. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!