auf der Grundlage von CrewAI Multi-intelligente Körperzusammenarbeit und Cohere Der Command-R7B ist ein großes Modell, das den gesamten Prozess von der Recherche bis zum Schreiben automatisiert, als hätte man eine 24-Stunden-Redaktion.
Kernfunktionen:
- Recherche und Analyse: Der erste KI-Assistent ist für die Suche und Organisation aller Informationen zu einem Thema zuständig, einschließlich Nachrichten, Daten und Expertenmeinungen.
- Inhaltserstellung: Ein zweiter KI-Assistent wandelt das Recherchematerial in vollständig strukturierte Artikel um und gewährleistet Professionalität und Lesbarkeit.
- Ein-Klick-Erstellung: Der Benutzer gibt einfach das Thema ein, und das System erledigt die gesamte Arbeit automatisch.
Technische Highlights:
- Einführung von crewAI, einem Rahmen für die Zusammenarbeit mehrerer KI
- Sicherstellung der Ausgabequalität mit Cohere, Command-R7B-Makromodellen
- Erstellen Sie eine saubere und benutzerfreundliche Webschnittstelle auf der Grundlage von Streamlit.
Nutzen Sie den Prozess:
- Geben Sie das Thema, über das Sie etwas wissen möchten, in der Seitenleiste ein
- Möglichkeit zur Anpassung der Erzeugungsparameter (z. B. Grad der Kreativität)
- Klicken Sie auf die Schaltfläche Generieren
- Warten, bis das System die Recherche und das Schreiben abgeschlossen hat
- Erstellte Artikel können direkt angesehen oder heruntergeladen werden
Das unten abgebildete Architekturdiagramm veranschaulicht einige der Schlüsselkomponenten (Intelligenzen/Aufgaben/Werkzeuge) und wie sie miteinander interagieren!
Jede Komponente und ihr Code wird im Folgenden ausführlich beschrieben:
Einrichten des Large Language Model (LLM) und der Web-Suchwerkzeuge
Erstellen Sie außerdem eine .env-Datei, um die entsprechenden API-Schlüssel zu speichern:
Senior Research Analyst Intelligence
Die Web Search Intelligence nimmt Benutzeranfragen entgegen und verwendet dann das Serper Web Search Tool, um Ergebnisse aus dem Internet abzurufen und zu konsolidieren.
Sehen Sie sich das an!
Research Analyst Intelligence Body Aufgaben
Dies ist die Forschungsaufgabe, die wir dem Senior Research Analyst Intelligence Body zugewiesen haben, und enthält die Aufgabenbeschreibung und die erwarteten Ergebnisse.
Intelligenz bei der Erstellung von Inhalten
Die Aufgabe der Content Writing Intelligence besteht darin, die gesammelten Ergebnisse in einen ausgefeilten, veröffentlichungsfähigen Nachrichtenartikel zu verwandeln.
Schreiben von Inhalten Intelligente Aufgaben für den Körper
So beschreiben wir den schriftlichen Auftrag, einschließlich aller Details und der erwarteten Ergebnisse:
Crew einstellen, fertig! ✅
Starten Sie ihn! 🚀
Einführungslehrgang
AI-Nachrichten-Generator
Das Projekt baut einen KI-Nachrichtengenerator unter Verwendung von CrewAI und dem Command-R:7B-Modell von Cohere!
Installation und Einrichtung
Abrufen des API-Schlüssels::
Installieren von Abhängigkeiten::
Stellen Sie sicher, dass Sie Python 3.11 oder höher installiert haben.
pip install crewai crewai-tools
.env.example
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")