올라마, 스웜, 덕덕고로 로컬 AI 뉴스 애그리게이터 구축하기
오늘날과 같이 빠르게 변화하는 세상에서 특정 분야의 최신 뉴스를 따라잡는 것은 쉽지 않은 일입니다. 제너레이티브 AI와 에이전트의 힘을 활용하여 로컬 컴퓨터에서만 실행되는 개인화된 뉴스 애그리게이터를 만들 수 있다면 어떨까요? 이 문서에서는 다음을 사용하는 방법을 살펴봅니다.Ollama의 라마 3.2 모델입니다,스웜프록시 예약을 수행하고덕덕고이러한 시스템을 구축하기 위해 웹 검색을 수행합니다.
로컬 AI의 힘
대규모 언어 모델의 등장으로 이제 우리는 개인용 컴퓨터에서 복잡한 AI 시스템을 실행할 수 있게 되었습니다. 이는 우리의 특정 요구에 맞는 맞춤형 도구를 만들 수 있는 무한한 가능성을 열어줍니다. 뉴스 애그리게이터는 이러한 잠재력을 보여주는 완벽한 예입니다.
시스템 구성 요소
- 올라마와 라마 3.2 AI 에이전트를 구동하는 시스템의 핵심입니다.
- 스웜 여러 AI 에이전트를 생성하고 관리할 수 있는 에이전트 오케스트레이션 프레임워크입니다.
- 덕덕고 검색 :: 사용자 데이터를 추적하지 않고 최신 웹 검색 결과를 제공합니다.
작동 원리
뉴스 애그리게이터는 두 가지 주요 AI 에이전트로 구성됩니다:
- 언론 지원 특정 주제에 대한 최신 뉴스 기사를 보려면 DuckDuckGo 검색을 사용하세요.
- 편집 도우미 최종 발표를 위해 수집한 뉴스를 검토하고 다듬습니다.
워크플로를 세분화해 보겠습니다:
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 기반 도구를 만들 수 있는 가능성은 계속 확대될 것입니다. 이 뉴스 애그리게이터는 시작에 불과합니다. 이러한 기술로 어떤 혁신적인 애플리케이션을 만들 수 있을지 상상해 보세요!
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...