mirror of
https://github.com/Paillat-dev/Botator.git
synced 2026-01-02 09:16:19 +00:00
Added function calling and lots of other stuff
This commit is contained in:
67
src/vision_processing.py
Normal file
67
src/vision_processing.py
Normal file
@@ -0,0 +1,67 @@
|
||||
import io
|
||||
import os
|
||||
import asyncio
|
||||
from config import debug
|
||||
|
||||
# Imports the Google Cloud client library
|
||||
from google.cloud import vision
|
||||
|
||||
# Instantiates a client
|
||||
try:
|
||||
client = vision.ImageAnnotatorClient()
|
||||
except:
|
||||
print("Google Vision API is not setup, please run /setup")
|
||||
|
||||
|
||||
|
||||
async def process(attachment):
|
||||
try:
|
||||
debug("Processing image...")
|
||||
image = vision.Image()
|
||||
image.source.image_uri = attachment.url
|
||||
labels = client.label_detection(image=image)
|
||||
texts = client.text_detection(image=image)
|
||||
objects = client.object_localization(image=image)
|
||||
labels = labels.label_annotations
|
||||
texts = texts.text_annotations
|
||||
objects = objects.localized_object_annotations
|
||||
# we take the first 4 labels and the first 4 objects
|
||||
labels = labels[:2]
|
||||
objects = objects[:7]
|
||||
final = "<image\n"
|
||||
if len(labels) > 0:
|
||||
final += "Labels:\n"
|
||||
for label in labels:
|
||||
final += label.description + ", "
|
||||
final = final[:-2] + "\n"
|
||||
if len(texts) > 0:
|
||||
final += "Text:\n"
|
||||
try:
|
||||
final += (
|
||||
texts[0].description + "\n"
|
||||
) # we take the first text, wich is the whole text in reality
|
||||
except:
|
||||
pass
|
||||
if len(objects) > 0:
|
||||
final += "Objects:\n"
|
||||
for obj in objects:
|
||||
final += obj.name + ", "
|
||||
final = final[:-2] + "\n"
|
||||
final += "!image>"
|
||||
# we store the result in a file called attachment.key.txt in the folder ./../database/google-vision/results
|
||||
# we create the folder if it doesn't exist
|
||||
if not os.path.exists("./../database/google-vision/results"):
|
||||
os.mkdir("./../database/google-vision/results")
|
||||
# we create the file
|
||||
with open(
|
||||
f"./../database/google-vision/results/{attachment.id}.txt",
|
||||
"w",
|
||||
encoding="utf-8",
|
||||
) as f:
|
||||
f.write(final)
|
||||
f.close()
|
||||
|
||||
return final
|
||||
|
||||
except Exception as e:
|
||||
print("Error while processing image: " + str(e))
|
||||
Reference in New Issue
Block a user