AI Personal Learning
und praktische Anleitung
讯飞绘镜

Aufbau eines lokalen KI-Nachrichtenaggregators mit Ollama, Swarm und DuckDuckGo

In der heutigen schnelllebigen Welt kann es eine Herausforderung sein, die neuesten Nachrichten in einem bestimmten Bereich zu verfolgen. Wie wäre es, wenn wir die Leistung von generativer KI und Agenten nutzen könnten, um einen personalisierten Nachrichtenaggregator zu erstellen, der vollständig auf lokalen Maschinen läuft? In diesem Artikel werden wir untersuchen, wie manOllamades Modells Llama 3.2,SchwarmProxy-Planung durchführen, undDuckDuckGoFühren Sie eine Websuche zum Aufbau eines solchen Systems durch.

Die Macht der lokalen KI

Mit dem Aufkommen groß angelegter Sprachmodelle sind wir nun in der Lage, komplexe KI-Systeme auf unseren PCs auszuführen. Dies eröffnet unendliche Möglichkeiten für die Entwicklung von Tools, die auf unsere spezifischen Bedürfnisse zugeschnitten sind. Unser Nachrichtenaggregator ist ein perfektes Beispiel für dieses Potenzial.

Bestandteile unseres Systems

  1. Ollama mit Llama 3.2 Dies ist das Herzstück unseres Systems, das unsere KI-Agenten antreibt.
  2. Schwarm Ein Agenten-Orchestrierungs-Framework, mit dem wir mehrere KI-Agenten erstellen und verwalten können.
  3. DuckDuckGo Suche :: Bereitstellung aktueller Websuchergebnisse ohne Nachverfolgung von Nutzerdaten.

Arbeitsprinzip

Unser Nachrichtenaggregator besteht aus zwei Haupt-KI-Agenten:

  1. Presse-Assistentin DuckDuckGo-Suche: Nutzen Sie die DuckDuckGo-Suche, um die neuesten Nachrichtenartikel zu bestimmten Themen zu finden.
  2. Redaktionsassistentin Überprüfung und Verfeinerung der gesammelten Nachrichten für die endgültige Präsentation.

Lassen Sie uns den Arbeitsablauf aufschlüsseln:

1. die Einrichtung der Umgebung

ollama pull llama3.2
export OPENAI_MODEL_NAME=llama3.2
export OPENAI_BASE_URL=http://localhost:11434/v1
export OPENAI_API_KEY=any
pip install git+https://github.com/openai/swarm.git duckduckgo-search

Wir beginnen mit dem Import der erforderlichen Bibliotheken und der Initialisierung unserer Schwarm Kunde:

from duckduckgo_search import DDGS
from swarm import Swarm, Agent
from datetime import datetime
current_date = datetime.now().strftime("%Y-%m")
client = Swarm()

2. die Einrichtung einer Suchfunktion für Nachrichten

Wir definieren eine Funktion für die Suche nach Nachrichten mit DuckDuckGo:

pythondef get_news_articles(topic):
ddg_api = DDGS()
results = ddg_api.text(f"{topic} {current_date}", max_results=5)
if results:
news_results = "\n\n".join([f"Title: {result['title']}\nURL: {result['href']}\nDescription: {result['body']}" for result in results])
return news_results
else:
return f"Could not find news results for {topic}."

3. Definition unserer KI-Agenten

Wir erstellen zwei Agenten unter Verwendung des Llama 3.2-Modells von Ollama:

news_agent = Agent(
model="llama3.2",
name="News Assistant",
instructions="You provide the latest news articles for a given topic using DuckDuckGo search.",
functions=[get_news_articles],
)
editor_agent = Agent(
model="llama3.2",
name="Editor Assistant",
instructions="You review and finalise the news article for publishing.",
)

4. die Koordinierung der Arbeitsabläufe

Wir definieren eine Funktion, die unseren Workflow zur Nachrichtenaggregation ausführt:

def run_news_workflow(topic):
# Fetch news
news_response = client.run(
agent=news_agent,
messages=[{"role": "user", "content": f"Get me the news about {topic} on {current_date}"}],
)
raw_news = news_response.messages[-1]["content"]
# Pass news to editor for final review
edited_news_response = client.run(
agent=editor_agent,
messages=[{"role": "system", "content": raw_news}],
)
print(f"{edited_news_response.messages[-1]['content']}")

5. betriebliche Systeme

Schließlich können wir unseren Nachrichtenaggregator für jedes beliebige Thema einsetzen:

run_news_workflow("AI in Drug Discovery")

Vollständiger Code: app.py

from duckduckgo_search import DDGS
from swarm import Swarm, Agent
from datetime import datetime
current_date = datetime.now().strftime("%Y-%m")
# 初始化 Swarm 客户端
client = Swarm()
# 1. 创建互联网搜索工具
def get_news_articles(topic):
print(f"正在为 {topic} 进行 DuckDuckGo 新闻搜索...")
# DuckDuckGo 搜索
ddg_api = DDGS()
results = ddg_api.text(f"{topic} {current_date}", max_results=5)
if results:
news_results = "\n\n".join([f"标题: {result['title']}\n网址: {result['href']}\n描述: {result['body']}" for result in results])
return news_results
else:
return f"未能找到关于 {topic} 的新闻结果。"
# 2. 创建 AI 代理
def transfer_to_editor_assistant(raw_news):
print("将文章传递给编辑助手...")
return editor_agent.run({"role": "system", "content": raw_news})
# 新闻代理以获取新闻
news_agent = Agent(
model="llama3.2",
name="新闻助手",
instructions="您提供有关给定主题的最新新闻文章,使用 DuckDuckGo 搜索。",
functions=[get_news_articles],
)
# 编辑代理以编辑新闻
editor_agent = Agent(
model="llama3.2",
name="编辑助手",
instructions="您审阅并最终确定新闻文章以供发布。",
)
# 3. 创建工作流程
def run_news_workflow(topic):
print("运行新闻代理工作流程...")
# 第一步: 获取新闻
news_response = client.run(
agent=news_agent,
messages=[{"role": "user", "content": f"获取关于 {topic} 在 {current_date} 的新闻"}],
)
raw_news = news_response.messages[-1]["content"]
print(f"获取的新闻: {raw_news}")
# 第二步: 将新闻传递给编辑进行最终审查
edited_news_response = client.run(
agent=editor_agent,
messages=[{"role": "system", "content": raw_news}],
)
print(f"{edited_news_response.messages[-1]['content']}")
# 运行给定主题的新闻工作流程示例
run_news_workflow("药物发现中的 AI")

Musterausgabe (Berechnung)

Running news Agent workflow...
Running DuckDuckGo news search for AI in Drug Discovery...
Fetched news: Here's a formatted answer based on the news articles:
**药物发现中的人工智能:革命性的转变**
人工智能(AI)在药物发现中的作用标志着制药领域的革命性转变。AI利用复杂的算法进行自主决策,从数据分析中增强人类能力,而不是取代它们。
**挑战与局限性**
尽管有着令人期待的进展,但在该领域中仍然存在挑战和局限性。论文《AI在药物发现中的作用》探讨了这些问题,强调了高质量数据的必要性、伦理问题的解决以及对基于AI的方法局限性的认识。
**AI在药物发现中的应用**
AI有潜力在药物发现、设计和研究药物间相互作用中发挥关键作用。AI在药物发现中的应用包括:
* 多靶点药理学:AI可以预测化合物对多种疾病的有效性。
* 化学合成:AI可以优化化学合成过程,以实现更快和更高效的生产。
* 药物重定位:AI可以识别现有药物的新用途。
* 预测药物特性:AI可以预测化合物的效力、毒性和物理化学特性。
**药物发现中AI的未来**
随着AI的不断发展,预计将对制药行业产生重大影响。AI的成功应用将依赖于高质量数据的可用性、伦理问题的解决以及对基于AI的方法局限性的认识。

Vorteile der Syndizierung lokaler AI-Nachrichten

  • Privatwirtschaft Die gesamte Verarbeitung findet auf Ihrem lokalen Rechner statt, so dass Ihre Daten in Ihren eigenen Händen bleiben.
  • Personalisierung Sie können die Anweisungen eines Beauftragten leicht ändern oder einen neuen Beauftragten hinzufügen, um Ihre speziellen Anforderungen zu erfüllen.
  • Neueste Informationen : Durch die Suche mit DuckDuckGo erhalten Sie immer die neuesten Nachrichten zu dem Thema Ihrer Wahl.
  • KI-gesteuerte Kuration Der Redaktionsassistent hilft dabei, die gesammelten Nachrichten zu verfeinern und zu organisieren, um ein besseres Endergebnis zu erzielen.

zu einem Urteil gelangen

Dieser lokale, KI-gestützte Nachrichtenaggregator zeigt das Potenzial der Kombination von groß angelegten Sprachmodellen mit Websuchfunktionen. Durch die Nutzung des Llama 3.2-Modells von Ollama, Swarm für die Orchestrierung von Agenten und DuckDuckGo für die Suche haben wir ein leistungsstarkes Tool geschaffen, das es uns ermöglicht, über jedes Thema von Interesse informiert zu bleiben, während unsere Privatsphäre gewahrt bleibt und es vollständig auf lokalen Computern läuft.

Mit der Weiterentwicklung der KI werden die Möglichkeiten für die Entwicklung personalisierter, KI-gestützter Tools immer größer. Dieser Nachrichten-Aggregator ist nur der Anfang - stellen Sie sich vor, welche anderen innovativen Anwendungen Sie mit diesen Technologien entwickeln könnten!


Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Aufbau eines lokalen KI-Nachrichtenaggregators mit Ollama, Swarm und DuckDuckGo
de_DEDeutsch