File size: 4,024 Bytes
7200ed6 147252c ca6df07 fd234e5 57f10fe efe7912 6168534 57f10fe 9dceda0 c89663d 37bd10d bfb2154 1c477d1 a293459 1c477d1 997b388 bb41c4b 07cda62 fd234e5 71b294c fd234e5 997b388 50c03f6 f995681 1c9438b 54c9445 3a698b7 506056f 3a698b7 06e2e1e a562d9c 06e2e1e e7b63ad 06e2e1e a600c86 3a698b7 506056f 3a698b7 a562d9c 506056f 1151d64 e7b63ad 506056f bfb2154 3a698b7 4e4205d 506056f 3a698b7 4e4205d 506056f 3a698b7 d167f12 506056f 3a698b7 a8ed030 3a698b7 a8ed030 54c9445 3a698b7 ef368b1 54c9445 ef368b1 fccb95f ef368b1 3a698b7 b0cd33a 3a698b7 ef368b1 147252c 3a698b7 777a1db c055605 |
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 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
import os
import gradio as gr
from textwrap import dedent
import google.generativeai as genai
# Tool import
from crewai.tools.gemini_tools import GeminiSearchTools
from langchain.tools.yahoo_finance_news import YahooFinanceNewsTool
from crewai.tools.browser_tools import BrowserTools
from crewai.tools.sec_tools import SECTools
from crewai.tools.mixtral_tools import MixtralSearchTools
from crewai.tools.zephyr_tools import ZephyrSearchTools
# Google Langchain
from langchain_google_genai import GoogleGenerativeAI
#Crew imports
from crewai import Agent, Task, Crew, Process
# Retrieve API Key from Environment Variable
GOOGLE_AI_STUDIO = os.environ.get('GOOGLE_API_KEY')
# Ensure the API key is available
if not GOOGLE_AI_STUDIO:
raise ValueError("API key not found. Please set the GOOGLE_AI_STUDIO2 environment variable.")
# Set gemini_llm
gemini_llm = GoogleGenerativeAI(model="gemini-pro", google_api_key=GOOGLE_AI_STUDIO)
# Base Example with Gemini Search
TITLE1 = """<h1 align="center">SmartMix - Your Safe Place</h1>"""
TITLE2 = """<h3 align="center">"This is an agent simulated group therapy session providing a safe, judgment-free environment, allowing for open exploration of sensitive topics. Please input the topic you would like to discuss. Active phrases produce realistic interactions."</h3>"""
def crewai_process(research_topic):
# Define your agents with roles and goals
crazy1 = Agent(
role='Homeless Person',
goal=f'Discuss issue with {research_topic} and come to a deeper understanding',
backstory="""Not doing well mentally living on the street""",
verbose=True,
allow_delegation=False,
llm = gemini_llm,
tools=[
MixtralSearchTools.mixtral_crazy,
GeminiSearchTools.gemini_search
]
)
crazy2 = Agent(
role='Distressed Mom',
goal='Resond to answers',
backstory="""Struggling with depression and loss of a child""",
verbose=True,
allow_delegation=True,
llm = gemini_llm,
tools=[
MixtralSearchTools.mixtral_normal,
GeminiSearchTools.gemini_search
]
# Add tools and other optional parameters as needed
)
# Create tasks for your agents
task1 = Task(
description=f"""Discuss the {research_topic}. Use Mixtral
do 10 rounds of chat with. react to crazy2 """,
agent=crazy1
)
task2 = Task(
description=f"""Discuss the {research_topic}. Use Mixtral
do 10 rounds of chat with. react to crazy1 """,
agent=crazy2
)
# Instantiate your crew with a sequential process
crew = Crew(
agents=[crazy1, crazy2],
tasks=[task1, task2],
verbose=2,
process=Process.sequential
)
# Get your crew to work!
result = crew.kickoff()
return result
# Create a Gradio interface
with gr.Blocks() as iface:
gr.HTML(TITLE1)
gr.HTML(TITLE2)
with gr.Row():
with gr.Column(scale=1):
gr.Image(value="crewai/resources/smartmix.jpg")
with gr.Column(scale=5):
run_button_crewai = gr.Button(value="Run", variant="primary", scale=1)
run_button_crewai.click(
fn=crewai_process,
inputs=gr.Textbox(lines=2, placeholder="Enter Research Topic Here..."),
outputs="text",
)
'''
iface = gr.Interface(
fn=crewai_process,
inputs=gr.Textbox(lines=2, placeholder="Enter Research Topic Here..."),
outputs="text",
title="SmartMix - Your Safe Place",
description="This is an agent simulated group therapy session providing a safe, judgment-free environment, allowing for open exploration of sensitive topics. Please input the topic you would like to discuss. Active phrases produce realistic interactions."
)
'''
# Launch the interface
iface.launch(debug=True)
|