|
|
|
|
|
|
|
|
|
from langchain_community.llms import HuggingFaceHub |
|
|
|
|
|
|
|
llm_zephyr_7b_beta = HuggingFaceHub( |
|
repo_id="mistralai/Mixtral-8x7B-Instruct-v0.1", |
|
task="text-generation", |
|
model_kwargs={ |
|
"max_new_tokens": 512, |
|
"top_k": 30, |
|
"temperature": 0.1, |
|
"repetition_penalty": 1.03, |
|
}, |
|
) |
|
|
|
import os |
|
from crewai import Agent, Task, Crew, Process |
|
from crewai_tools.tools import SerperDevTool |
|
|
|
|
|
|
|
search_tool = SerperDevTool() |
|
|
|
|
|
researcher = Agent( |
|
role='Senior Research Analyst', |
|
goal='Uncover cutting-edge developments in AI and data science', |
|
backstory="""You work at a leading tech think tank. |
|
Your expertise lies in identifying emerging trends. |
|
You have a knack for dissecting complex data and presenting actionable insights.""", |
|
verbose=True, |
|
allow_delegation=False, |
|
tools=[search_tool], |
|
max_execution_time=5, |
|
max_iter=15, |
|
max_rpm=None, |
|
llm=llm_zephyr_7b_beta |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
) |
|
|
|
writer = Agent( |
|
role='Tech Content Strategist', |
|
goal='Craft compelling content on tech advancements', |
|
backstory="""You are a renowned Content Strategist, known for your insightful and engaging articles. |
|
You transform complex concepts into compelling narratives.""", |
|
verbose=True, |
|
max_execution_time=5, |
|
max_iter=15, |
|
max_rpm=None, |
|
allow_delegation=True, |
|
llm=llm_zephyr_7b_beta |
|
) |
|
|
|
|
|
task1 = Task( |
|
description="""Conduct a comprehensive analysis of the latest advancements in AI in 2024. |
|
Identify key trends, breakthrough technologies, and potential industry impacts.""", |
|
expected_output="Full analysis report in bullet points", |
|
agent=researcher |
|
) |
|
|
|
task2 = Task( |
|
description="""Using the insights provided, develop an engaging blog |
|
post that highlights the most significant AI advancements. |
|
Your post should be informative yet accessible, catering to a tech-savvy audience. |
|
Make it sound cool, avoid complex words so it doesn't sound like AI.""", |
|
expected_output="Full blog post of at least 4 paragraphs", |
|
agent=writer |
|
) |
|
|
|
|
|
crew = Crew( |
|
agents=[researcher, writer], |
|
tasks=[task1, task2], |
|
verbose=2, |
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def load_model( ): |
|
|
|
model = HuggingFaceHub( |
|
repo_id="mistralai/Mixtral-8x7B-Instruct-v0.1", |
|
model_kwargs={"max_length": 1048, "temperature":0.2, "max_new_tokens":256, "top_p":0.95, "repetition_penalty":1.0}, |
|
) |
|
|
|
return model |
|
|
|
|
|
|
|
|
|
|
|
|
|
from fastapi import FastAPI |
|
from fastapi.middleware.cors import CORSMiddleware |
|
|
|
app = FastAPI() |
|
|
|
|
|
app.add_middleware( |
|
CORSMiddleware, |
|
allow_origins=['*'], |
|
allow_credentials=True, |
|
allow_methods=['*'], |
|
allow_headers=['*'], |
|
) |
|
|
|
|
|
@app.post("/generate/") |
|
def generate(user_input, history=[]): |
|
print("######################") |
|
|
|
result = crew.kickoff() |
|
print("######################") |
|
print(result) |
|
return result |
|
|
|
|
|
@app.on_event("startup") |
|
async def startup(): |
|
|
|
|
|
|
|
print("######################") |
|
|
|
|