CrewAI + Command-R7B Generación inteligente de noticias en 100 líneas de código

sobre la base de CrewAI Colaboración corporal multiinteligente y Cohere El Command-R7B es un modelo de gran tamaño que automatiza todo el proceso, desde la investigación hasta la redacción, como tener una redacción 24 horas.

CrewAI + Command-R7B 百行代码实现智能生成新闻

 

Funciones básicas:

  1. Investigación y análisis: el primer asistente de IA se encarga de buscar y organizar toda la información relacionada con el tema, incluidas noticias, datos y opiniones de expertos.
  2. Creación de contenidos: un segundo asistente de IA transforma el material de investigación en artículos totalmente estructurados, garantizando profesionalidad y legibilidad.
  3. Generación con un solo clic: el usuario sólo tiene que introducir el tema y el sistema hace todo el trabajo automáticamente.

Aspectos técnicos destacados:

  • Adopción de crewAI, un marco para la colaboración multi-AI
  • Garantice la calidad de los resultados con los macromodelos cohere, Command-R7B
  • Construir una interfaz web limpia y fácil de usar basada en streamlit.

Utiliza el proceso:

  1. Introduzca en la barra lateral el tema sobre el que desea informarse
  2. Posibilidad de ajustar los parámetros de generación (por ejemplo, el grado de creatividad)
  3. Pulse el botón Generar
  4. Esperar a que el sistema complete la investigación y la redacción
  5. Los artículos generados pueden visualizarse o descargarse directamente

 

El diagrama de arquitectura que se muestra a continuación ilustra algunos de los componentes clave (inteligencias/tareas/herramientas) y cómo interactúan entre sí.

A continuación se describe detalladamente cada componente y su código:

CrewAI + Command-R7B 百行代码实现智能生成新闻

 

Configuración del Large Language Model (LLM) y de las herramientas de búsqueda en Internet

Cree también un archivo .env para guardar sus correspondientes claves API:

CrewAI + Command-R7B 百行代码实现智能生成新闻

 

Analista principal de investigación de inteligencia

Web Search Intelligence acepta las consultas de los usuarios y, a continuación, utiliza la herramienta Serper Web Search para recuperar y consolidar los resultados de Internet.

¡Mira esto!

CrewAI + Command-R7B 百行代码实现智能生成新闻

 

Analista de investigación Tareas del Cuerpo de Inteligencia

Esta es la tarea de investigación que asignamos al Analista Senior de Investigación del Cuerpo de Inteligencia y contiene la descripción de la tarea y los resultados esperados.

CrewAI + Command-R7B 百行代码实现智能生成新闻

 

Inteligencias de autor de contenidos

El papel de la inteligencia de redacción de contenidos es utilizar los resultados cotejados y convertirlos en un artículo periodístico pulido y publicable.

CrewAI + Command-R7B 百行代码实现智能生成新闻

 

Redacción de contenidos Tareas corporales inteligentes

Así es como describimos el encargo de redacción, incluyendo todos los detalles y el resultado esperado:

CrewAI + Command-R7B 百行代码实现智能生成新闻

 

Set Crew, ¡hecho! ✅

¡Ponlo en marcha! 🚀

CrewAI + Command-R7B 百行代码实现智能生成新闻

 

Tutorial de implantación

Generador de noticias AI

El proyecto construye un generador de noticias por IA utilizando CrewAI y el modelo Command-R:7B de Cohere.

Instalación y configuración

Obtener la clave API::

Instalación de dependencias::
Asegúrese de tener instalado Python 3.11 o posterior.

pip install crewai crewai-tools

 

.env.ejemplo

SERPER_API_KEY=your_serper_api_key
COHERE_API_KEY=your_cohere_apikey

 

app.py

import os
import streamlit as st
from crewai import Agent, Task, Crew, LLM
from crewai_tools import SerperDevTool
from dotenv import load_dotenv

# Load environment variables
load_dotenv()

# Streamlit page config
st.set_page_config(page_title="AI News Generator", page_icon="📰", layout="wide")

# Title and description
st.title("🤖 AI News Generator, powered by CrewAI and Cohere's Command R7B")
st.markdown("Generate comprehensive blog posts about any topic using AI agents.")

# Sidebar
with st.sidebar:
st.header("Content Settings")

# Make the text input take up more space
topic = st.text_area(
"Enter your topic",
height=100,
placeholder="Enter the topic you want to generate content about..."
)

# Add more sidebar controls if needed
st.markdown("### Advanced Settings")
temperature = st.slider("Temperature", 0.0, 1.0, 0.7)

# Add some spacing
st.markdown("---")

# Make the generate button more prominent in the sidebar
generate_button = st.button("Generate Content", type="primary", use_container_width=True)

# Add some helpful information
with st.expander("ℹ️ How to use"):
st.markdown("""
1. Enter your desired topic in the text area above
2. Adjust the temperature if needed (higher = more creative)
3. Click 'Generate Content' to start
4. Wait for the AI to generate your article
5. Download the result as a markdown file
""")

def generate_content(topic):
llm = LLM(
model="command-r",
temperature=0.7
)

search_tool = SerperDevTool(n_results=10)

# First Agent: Senior Research Analyst
senior_research_analyst = Agent(
role="Senior Research Analyst",
goal=f"Research, analyze, and synthesize comprehensive information on {topic} from reliable web sources",
backstory="You're an expert research analyst with advanced web research skills. "
"You excel at finding, analyzing, and synthesizing information from "
"across the internet using search tools. You're skilled at "
"distinguishing reliable sources from unreliable ones, "
"fact-checking, cross-referencing information, and "
"identifying key patterns and insights. You provide "
"well-organized research briefs with proper citations "
"and source verification. Your analysis includes both "
"raw data and interpreted insights, making complex "
"information accessible and actionable.",
allow_delegation=False,
verbose=True,
tools=[search_tool],
llm=llm
)

# Second Agent: Content Writer
content_writer = Agent(
role="Content Writer",
goal="Transform research findings into engaging blog posts while maintaining accuracy",
backstory="You're a skilled content writer specialized in creating "
"engaging, accessible content from technical research. "
"You work closely with the Senior Research Analyst and excel at maintaining the perfect "
"balance between informative and entertaining writing, "
"while ensuring all facts and citations from the research "
"are properly incorporated. You have a talent for making "
"complex topics approachable without oversimplifying them.",
allow_delegation=False,
verbose=True,
llm=llm
)

# Research Task
research_task = Task(
description=("""
1. Conduct comprehensive research on {topic} including:
- Recent developments and news
- Key industry trends and innovations
- Expert opinions and analyses
- Statistical data and market insights
2. Evaluate source credibility and fact-check all information
3. Organize findings into a structured research brief
4. Include all relevant citations and sources
"""),
expected_output="""A detailed research report containing:
- Executive summary of key findings
- Comprehensive analysis of current trends and developments
- List of verified facts and statistics
- All citations and links to original sources
- Clear categorization of main themes and patterns
Please format with clear sections and bullet points for easy reference.""",
agent=senior_research_analyst
)

# Writing Task
writing_task = Task(
description=("""
Using the research brief provided, create an engaging blog post that:
1. Transforms technical information into accessible content
2. Maintains all factual accuracy and citations from the research
3. Includes:
- Attention-grabbing introduction
- Well-structured body sections with clear headings
- Compelling conclusion
4. Preserves all source citations in [Source: URL] format
5. Includes a References section at the end
"""),
expected_output="""A polished blog post in markdown format that:
- Engages readers while maintaining accuracy
- Contains properly structured sections
- Includes Inline citations hyperlinked to the original source url
- Presents information in an accessible yet informative way
- Follows proper markdown formatting, use H1 for the title and H3 for the sub-sections""",
agent=content_writer
)

# Create Crew
crew = Crew(
agents=[senior_research_analyst, content_writer],
tasks=[research_task, writing_task],
verbose=True
)

return crew.kickoff(inputs={"topic": topic})

# Main content area
if generate_button:
with st.spinner('Generating content... This may take a moment.'):
try:
result = generate_content(topic)
st.markdown("### Generated Content")
st.markdown(result)

# Add download button
st.download_button(
label="Download Content",
data=result.raw,
file_name=f"{topic.lower().replace(' ', '_')}_article.md",
mime="text/markdown"
)
except Exception as e:
st.error(f"An error occurred: {str(e)}")

# Footer
st.markdown("---")
st.markdown("Built with CrewAI, Streamlit and powered by Cohere's Command R7B")
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...