genaitiwari's picture
multi agent coder corrected
3524557
from PIL import Image
import io
import os
import requests
from crewai.tools import tool
from langchain_community.tools import DuckDuckGoSearchRun
class SupportingTools:
def __init__(self,API_URL=None):
self.API_URL = API_URL
self.hf_api_key = os.getenv("HUGGINGFACE_API_KEY")
self.headers = {"Authorization": f"Bearer {self.hf_api_key }"}
# API_URL = "https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-xl-base-1.0"
# hugginface_api_key = os.getenv("HUGGINGFACE_API_KEY")
# headers = {"Authorization": f"Bearer {hugginface_api_key}"}
def query(self,payload):
response = requests.post(self.API_URL, headers=self.headers, json=payload)
return response.content
def generate_image(self,input: str):
"""Create an image based on input"""
image_bytes = self.query({
"inputs": input,
})
#return image_bytes
# You can access the image with PIL.Image for example
image = Image.open(io.BytesIO(image_bytes))
name = input.split(" ")[0]
image.save(f"./images/generate_{name}.jpg")
return image
@tool("Image Generate Tool")
def image_generate(prompt: str):
"""
Args:
prompt (str): the prompt string return from the classification agent is the argument prompt in the functiom generat image tool.
"""
API_URL = "https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-xl-base-1.0"
hugginface_api_key = os.getenv("HUGGINGFACE_API_KEY")
headers = {"Authorization": f"Bearer {hugginface_api_key}"}
def query(payload):
response = requests.post(API_URL, headers=headers, json=payload)
return response.content
image_bytes = query({
"inputs": prompt,
})
name = prompt.split(" ")[0]
image = Image.open(io.BytesIO(image_bytes)).resize((1024, 1024))
image.save(f"./outputs/generate_{name}.jpg")
import streamlit as st
st.write("************ # IMAGE GEN # ********")
st.image(image)
return image
def duckduckgosearchtool(self):
search_tool = DuckDuckGoSearchRun()
return search_tool