feat: Add screenshot processing adapters
This commit is contained in:
42
processors.py
Normal file
42
processors.py
Normal file
@@ -0,0 +1,42 @@
|
||||
import requests
|
||||
from utils import img2base64
|
||||
|
||||
|
||||
class ProcessorAdapter:
|
||||
def __init__(self, name, base_url, headers, payload):
|
||||
self.name = name
|
||||
self.base_url = base_url
|
||||
self.headers = headers
|
||||
self.payload = payload
|
||||
|
||||
def get_ai_response(self, image_path: str):
|
||||
resp = requests.get(self.base_url, headers=self.headers, data=self.payload)
|
||||
|
||||
data = resp.json()
|
||||
|
||||
return data
|
||||
|
||||
|
||||
class MoondreamOnlineAdapter(ProcessorAdapter):
|
||||
def __init__(self, api_key):
|
||||
self.name = "Moondream Online"
|
||||
self.base_url = "https://api.moondream.ai/v1/caption"
|
||||
self.api_key = api_key
|
||||
|
||||
self.headers = {
|
||||
"X-Moondream-Auth": self.api_key,
|
||||
"Content-Type": "application/json",
|
||||
}
|
||||
|
||||
super().__init__(self.name, self.base_url, self.headers, self.payload)
|
||||
|
||||
def get_ai_response(self, image_path: str):
|
||||
encoded_image = img2base64(image_path)
|
||||
self.payload = {
|
||||
"image_url": encoded_image,
|
||||
"question": """Delegated Task: {task}\n\nreturn json data: {
|
||||
"user_productive": bool,
|
||||
"screenshot_description": str
|
||||
}""",
|
||||
}
|
||||
return super().get_ai_response(encoded_image)
|
||||
Reference in New Issue
Block a user