CrewAI + Command-R7B Génération intelligente de nouvelles en 100 lignes de code

sur la base de CrewAI Collaboration avec des organismes multi-intelligents et Cohère La Command-R7B est un grand modèle qui automatise l'ensemble du processus, de la recherche à la rédaction, comme s'il s'agissait d'une salle de presse fonctionnant 24 heures sur 24.

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

 

Fonctions essentielles :

  1. Recherche et analyse : le premier assistant IA est chargé de rechercher et d'organiser toutes les informations relatives au sujet, y compris les actualités, les données et les avis d'experts.
  2. Création de contenu : un deuxième assistant IA transforme le matériel de recherche en articles entièrement structurés, garantissant professionnalisme et lisibilité.
  3. Génération en un clic : l'utilisateur saisit simplement le sujet et le système fait tout le travail automatiquement.

Faits saillants techniques :

  • Adopter crewAI, un cadre pour la collaboration multi-AI
  • Assurer la qualité de la production avec les macromodèles cohere, Command-R7B
  • Construire une interface web propre et facile à utiliser basée sur streamlit.

Utiliser le processus :

  1. Saisissez le sujet sur lequel vous voulez en savoir plus dans la barre latérale
  2. Possibilité d'ajuster les paramètres de génération (par exemple, le degré de créativité)
  3. Cliquez sur le bouton Générer
  4. Attendre que le système termine la recherche et la rédaction
  5. Les articles générés peuvent être consultés ou téléchargés directement

 

Le diagramme d'architecture ci-dessous illustre certains des composants clés (intelligences/tâches/outils) et la manière dont ils interagissent les uns avec les autres !

Chaque composant et son code sont décrits en détail ci-après :

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

 

Mise en place du modèle linguistique étendu (LLM) et des outils de recherche sur le web

Créez également un fichier .env pour contenir les clés API correspondantes :

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

 

Analyste principal de la recherche en intelligence

L'intelligence de recherche Web accepte les requêtes des utilisateurs et utilise ensuite l'outil de recherche Web Serper pour récupérer et consolider les résultats de l'Internet.

Regardez ça !

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

 

Analyste de recherche Tâches de l'organe de renseignement

Il s'agit de la tâche de recherche que nous avons confiée au Senior Research Analyst Intelligence Body et qui contient la description de la tâche et les résultats attendus.

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

 

Intelligences en matière de rédaction de contenu

Le rôle de la Content Writing Intelligence est d'utiliser les résultats collectés et de les transformer en un article de presse soigné et publiable.

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

 

Rédaction de contenu Tâches du corps intelligent

C'est ainsi que nous décrivons la mission de rédaction, avec tous les détails et le résultat attendu :

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

 

Set Crew, done ! ✅

Démarrez-le ! 🚀

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

 

Tutoriel de déploiement

Générateur de nouvelles sur l'IA

Le projet construit un générateur de nouvelles IA en utilisant CrewAI et le modèle Command-R:7B de Cohere !

Installation et configuration

Obtenir la clé API: :

Installation des dépendances: :
Assurez-vous d'avoir installé Python 3.11 ou une version ultérieure.

pip install crewai crewai-tools

 

.env.exemple

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")
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...