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)