Spaces:
Runtime error
Runtime error
import requests | |
import json | |
from ..tool import Tool | |
import os | |
def build_tool(config) -> Tool: | |
tool = Tool( | |
"Image Explainer", | |
"Tool that adds the capability to explain images.", | |
name_for_model="Image Explainer", | |
description_for_model=( | |
"An Image Captioning Tool: Use this tool to generate a detailed caption " | |
"for an image. The input can be an image file of any format, and " | |
"the output will be a text description that covers every detail of the image." | |
), | |
logo_url="https://scenex.jina.ai/SceneX%20-%20Light.svg", | |
contact_email="[email protected]", | |
legal_info_url="[email protected]", | |
) | |
scenex_api_key = config["subscription_key"] | |
scenex_api_url: str = ( | |
"https://us-central1-causal-diffusion.cloudfunctions.net/describe" | |
) | |
def describe_image(image: str): | |
"""Get the text description of an image.""" | |
headers = { | |
"x-api-key": f"token {scenex_api_key}", | |
"content-type": "application/json", | |
} | |
payload = { | |
"data": [ | |
{ | |
"image": image, | |
"algorithm": "Ember", | |
"languages": ["en"], | |
} | |
] | |
} | |
response = requests.post(scenex_api_url, headers=headers, json=payload) | |
response.raise_for_status() | |
result = response.json().get("result", []) | |
img = result[0] if result else {} | |
description = img.get("text", "") | |
if not description: | |
return "No description found." | |
return description | |
return tool | |