올라마, 스웜, 덕덕고로 로컬 AI 뉴스 애그리게이터 구축하기

AI 실습 튜토리얼10개월 전에 게시 됨 AI 공유 서클
10.4K 00

오늘날과 같이 빠르게 변화하는 세상에서 특정 분야의 최신 뉴스를 따라잡는 것은 쉽지 않은 일입니다. 제너레이티브 AI와 에이전트의 힘을 활용하여 로컬 컴퓨터에서만 실행되는 개인화된 뉴스 애그리게이터를 만들 수 있다면 어떨까요? 이 문서에서는 다음을 사용하는 방법을 살펴봅니다.Ollama의 라마 3.2 모델입니다,스웜프록시 예약을 수행하고덕덕고이러한 시스템을 구축하기 위해 웹 검색을 수행합니다.

로컬 AI의 힘

대규모 언어 모델의 등장으로 이제 우리는 개인용 컴퓨터에서 복잡한 AI 시스템을 실행할 수 있게 되었습니다. 이는 우리의 특정 요구에 맞는 맞춤형 도구를 만들 수 있는 무한한 가능성을 열어줍니다. 뉴스 애그리게이터는 이러한 잠재력을 보여주는 완벽한 예입니다.

시스템 구성 요소

  1. 올라마와 라마 3.2 AI 에이전트를 구동하는 시스템의 핵심입니다.
  2. 스웜 여러 AI 에이전트를 생성하고 관리할 수 있는 에이전트 오케스트레이션 프레임워크입니다.
  3. 덕덕고 검색 :: 사용자 데이터를 추적하지 않고 최신 웹 검색 결과를 제공합니다.

작동 원리

뉴스 애그리게이터는 두 가지 주요 AI 에이전트로 구성됩니다:

  1. 언론 지원 특정 주제에 대한 최신 뉴스 기사를 보려면 DuckDuckGo 검색을 사용하세요.
  2. 편집 도우미 최종 발표를 위해 수집한 뉴스를 검토하고 다듬습니다.

워크플로를 세분화해 보겠습니다:

1. 환경 설정하기

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

먼저 필요한 라이브러리를 가져와서 초기화하고 스웜 Client:

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

2. 뉴스 검색 기능 생성

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. AI 에이전트 정의

올라마의 Llama 3.2 모델을 사용하여 두 개의 에이전트를 생성합니다:

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. 워크플로 조정

뉴스 집계 워크플로우를 실행하는 함수를 정의합니다:

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. 운영 시스템

마지막으로 관심 있는 주제에 대해 뉴스 애그리게이터를 실행할 수 있습니다:

run_news_workflow("AI in Drug Discovery")

전체 코드: 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")

샘플 출력(컴퓨팅)

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的方法局限性的认识。

로컬 AI 뉴스 신디케이션의 이점

  • 개인 비즈니스 모든 처리는 로컬 컴퓨터에서 이루어지므로 데이터를 안전하게 보호할 수 있습니다.
  • 사용자 지정 상담원의 안내를 쉽게 수정하거나 특정 요구 사항을 충족하는 새 상담원을 추가할 수 있습니다.
  • 최신 정보 덕덕고로 검색하면 원하는 주제에 대한 최신 뉴스를 항상 확인할 수 있습니다.
  • AI 기반 큐레이션 편집 도우미는 수집된 뉴스를 다듬고 정리하여 보다 세련된 최종 결과물을 제공하는 데 도움을 줍니다.

평결에 도달하기

이 로컬 AI 기반 뉴스 애그리게이터는 대규모 언어 모델과 웹 검색 기능을 결합할 수 있는 잠재력을 보여줍니다. Ollama의 Llama 3.2 모델, 에이전트 오케스트레이션을 위한 Swarm, 검색을 위한 DuckDuckGo를 활용하여 개인 정보를 보호하고 로컬 컴퓨터에서 전적으로 실행하면서 관심 있는 모든 주제에 대한 정보를 얻을 수 있는 강력한 도구를 만들었습니다.

AI가 계속 발전함에 따라 개인화된 AI 기반 도구를 만들 수 있는 가능성은 계속 확대될 것입니다. 이 뉴스 애그리게이터는 시작에 불과합니다. 이러한 기술로 어떤 혁신적인 애플리케이션을 만들 수 있을지 상상해 보세요!

© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...