| |
| |
| |
|
|
| 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": 1000, |
| "top_k": 2, |
| "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=120, |
| max_iter=50, |
| max_rpm=25, |
| 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=120, |
| max_iter=50, |
| max_rpm=25, |
| allow_delegation=False, |
| 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=1, |
| ) |
|
|
| |
| |
|
|
| |
| |
|
|
| |
| |
| |
| |
| |
|
|
| |
| 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("######################") |
| |
| |