|
|
|
from dotenv import load_dotenv |
|
|
|
|
|
from crewai import Agent, Task, Crew, Process |
|
from langchain_openai import ChatOpenAI |
|
import gradio as gr |
|
|
|
load_dotenv() |
|
|
|
|
|
llm = ChatOpenAI(model='gpt-4o-mini', temperature=0.3) |
|
|
|
|
|
from langchain_community.tools.tavily_search import TavilySearchResults |
|
|
|
search_tool = TavilySearchResults() |
|
|
|
def run_crypto_crew(topic): |
|
|
|
|
|
researcher = Agent( |
|
role='Market Researcher', |
|
goal=f'Uncover emerging trends and investment opportunities in the cryptocurrency market in 2025. Focus on the topic: {topic}.', |
|
backstory='Identify groundbreaking trends and actionable insights.', |
|
verbose=True, |
|
tools=[search_tool], |
|
allow_delegation=False, |
|
llm=llm, |
|
max_iter=3, |
|
max_rpm=10, |
|
) |
|
|
|
|
|
analyst = Agent( |
|
role='Investment Analyst', |
|
goal=f'Analyze cryptocurrency market data to extract actionable insights and investment leads. Focus on the topic: {topic}.', |
|
backstory='Draw meaningful conclusions from cryptocurrency market data.', |
|
verbose=True, |
|
allow_delegation=False, |
|
llm=llm, |
|
) |
|
|
|
|
|
|
|
research_task = Task( |
|
description=f'Explore the internet to pinpoint emerging trends and potential investment opportunities. Focus on the topic: {topic}.', |
|
agent=researcher, |
|
expected_output='A detailed summary of the reserch results in string format' |
|
) |
|
|
|
|
|
analyst_task = Task( |
|
description=f'Analyze the provided cryptocurrency market data to extract key insights and compile a concise report. Focus on the topic: {topic}.', |
|
agent=analyst, |
|
expected_output='A refined finalized version of the report in string format' |
|
) |
|
|
|
|
|
|
|
crypto_crew = Crew( |
|
agents=[researcher, analyst], |
|
tasks=[research_task, analyst_task], |
|
process=Process.sequential |
|
) |
|
|
|
|
|
result = crypto_crew.kickoff() |
|
|
|
return result.raw |
|
|
|
|
|
def process_query(message, history): |
|
return run_crypto_crew(message) |
|
|
|
|
|
if __name__ == '__main__': |
|
app = gr.ChatInterface( |
|
fn=process_query, |
|
type="messages", |
|
title="Crypto Investment Advisor Bot", |
|
description="Get insights into cryptocurrency trends to guide your investments. AI-generated results are for reference only. invest responsibly." |
|
) |
|
|
|
app.launch() |
|
|