parent
c62577014c
commit
c529244913
@ -0,0 +1,79 @@
|
||||
# Importing necessary modules
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
from swarms import Agent, OpenAIChat
|
||||
from swarms.tools.tool import tool
|
||||
from swarms.prompts.visual_cot import VISUAL_CHAIN_OF_THOUGHT
|
||||
from swarms.memory.chroma_db import ChromaDB
|
||||
|
||||
# Loading environment variables from .env file
|
||||
load_dotenv()
|
||||
|
||||
# Getting the Gemini API key from environment variables
|
||||
gemini_api_key = os.getenv("GEMINI_API_KEY")
|
||||
openai_api_key = os.getenv("OPENAI_API_KEY")
|
||||
|
||||
llm = OpenAIChat(
|
||||
openai_api_key=openai_api_key,
|
||||
max_tokens=1000,
|
||||
temperature=0.2,
|
||||
)
|
||||
|
||||
# Making an instance of the ChromaDB class
|
||||
memory = ChromaDB(
|
||||
metric="cosine",
|
||||
n_results=3,
|
||||
multimodal=True,
|
||||
docs_folder="images",
|
||||
output_dir="results",
|
||||
)
|
||||
|
||||
|
||||
# Defining tool by creating a function and wrapping it with the @tool decorator and
|
||||
# providing the necessary parameters and docstrings to show the usage of the tool.
|
||||
@tool
|
||||
def make_new_file(file: str, content: str):
|
||||
"""
|
||||
Make a new file.
|
||||
|
||||
This function creates a new file with the given name.
|
||||
|
||||
Parameters:
|
||||
file (str): The name of the file to be created.
|
||||
|
||||
Returns:
|
||||
dict: A dictionary containing the status of the operation.
|
||||
"""
|
||||
with open(file, "w") as f:
|
||||
f.write(f"{content}")
|
||||
|
||||
|
||||
# Initializing the agent with the Gemini instance and other parameters
|
||||
agent = Agent(
|
||||
llm=llm,
|
||||
agent_name="Multi-Modal RAG Agent",
|
||||
agent_description=(
|
||||
"This agent fuses together the capabilities of Gemini and"
|
||||
" Visual Chain of Thought to answer questions based on the"
|
||||
" input image."
|
||||
),
|
||||
max_loops="auto",
|
||||
autosave=True,
|
||||
sop=VISUAL_CHAIN_OF_THOUGHT,
|
||||
verbose=True,
|
||||
tools=[make_new_file],
|
||||
long_term_memory=memory,
|
||||
)
|
||||
|
||||
|
||||
# Defining the task and image path
|
||||
task = (
|
||||
"What is the content of this image, return exactly what you see"
|
||||
" in the image."
|
||||
)
|
||||
img = "images/Screenshot_48.png"
|
||||
|
||||
|
||||
# Running the agent with the specified task and image
|
||||
out = agent.run(task=task, img=img)
|
||||
print(out)
|
Loading…
Reference in new issue