Repository navigation
Expand file tree
/
Copy pathtools.py
More file actions
82 lines (68 loc) · 2.3 KB
/
Copy pathtools.py
File metadata and controls
82 lines (68 loc) · 2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
from elevenlabs.conversational_ai.conversation import ClientTools
from langchain_community.tools import DuckDuckGoSearchRun
import os
import requests
import openai
from PIL import Image
from io import BytesIO
from dotenv import load_dotenv
def searchWeb(parameters):
query = parameters.get("query")
results = DuckDuckGoSearchRun(query=query)
return results
def save_to_txt(parameters):
filename= parameters.get("filename")
data = parameters.get("data")
formatted_data = f"{data}"
with open(filename, "a", encoding="utf-8") as file:
file.write(formatted_data + "\n")
def create_html_file(parameters):
filename = parameters.get("filename")
data = parameters.get("data")
title = parameters.get("title")
formatted_html = f"""
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{title}</title>
</head>
<body>
<h1>{title}</h1>
<div>{data}</div>
</body>
</html>
"""
with open(filename, "w", encoding="utf-8") as file:
file.write(formatted_html)
def generate_image(parameters):
prompt = parameters.get("prompt")
size = parameters.get("size", "1024x1024") # Default size
save_dir = parameters.get("save_dir", "generated_images") # Default save directory
filename = parameters.get("filename")
"""Generate an image based on a text prompt using DALL-E and save it locally"""
# Create the save directory if it doesn't exist
os.makedirs(save_dir, exist_ok=True)
filename = filename if filename.endswith(".png") else filename + ".png"
file_path = os.path.join(save_dir, filename)
load_dotenv()
openai.api_key = "OPENAI_API_KEY"
client = openai.OpenAI()
response = client.images.generate(
model="dall-e-3",
prompt=prompt,
size=size,
quality="standard",
n=1,
)
image_url = response.data[0].url
print(response)
# Download and save the image
img_response = requests.get(image_url)
image = Image.open(BytesIO(img_response.content))
image.save(file_path)
client_tools = ClientTools()
client_tools.register("searchWeb", searchWeb)
client_tools.register("saveToTxt", save_to_txt)
client_tools.register("createHtmlFile", create_html_file)