Aprendizagem pessoal com IA
e orientação prática

Criação de um agregador local de notícias de IA com Ollama, Swarm e DuckDuckGo

No mundo acelerado de hoje, manter-se atualizado com as últimas notícias de uma determinada área pode ser um desafio. E se pudéssemos aproveitar o poder da IA generativa e dos agentes para criar um agregador de notícias personalizado que fosse executado inteiramente em máquinas locais? Neste artigo, exploraremos como usarOllamado modelo Llama 3.2,EnxameRealizar agendamento de proxy eDuckDuckGoFaça uma pesquisa na Web para criar esse sistema.

O poder da IA local

Com o surgimento de modelos de linguagem em grande escala, agora podemos executar sistemas complexos de IA em nossos computadores pessoais. Isso abre infinitas possibilidades para a criação de ferramentas personalizadas de acordo com nossas necessidades específicas. Nosso agregador de notícias é um exemplo perfeito desse potencial.

Componentes do nosso sistema

  1. Ollama com Llama 3.2 Esse é o coração do nosso sistema, alimentando nossos agentes de IA.
  2. Enxame Estrutura de orquestração de agentes que nos permite criar e gerenciar vários agentes de IA.
  3. Pesquisa DuckDuckGo : fornece resultados atualizados de pesquisa na Web sem rastrear os dados do usuário.

Princípio de funcionamento

Nosso agregador de notícias consiste em dois agentes principais de IA:

  1. Assistente de imprensa Pesquisa: Use a pesquisa do DuckDuckGo para obter os artigos de notícias mais recentes sobre tópicos específicos.
  2. Assistente editorial Revisão e refinamento das notícias coletadas para a apresentação final.

Vamos detalhar o fluxo de trabalho:

1. configuração do ambiente

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

Começamos importando as bibliotecas necessárias e inicializando nosso cliente Swarm:

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

2. criação de uma função de pesquisa de notícias

Definimos uma função para pesquisar notícias usando o DuckDuckGo:

pythondef get_news_articles(topic).
ddg_api = DDGS()
resultados = 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 "Não foi possível encontrar resultados de notícias?
return f "Não foi possível encontrar resultados de notícias para {topic}."

3. definição de nossos agentes de IA

Criamos dois agentes usando o modelo Llama 3.2 da Ollama:

news_agent = Agente(
model="llama3.2",
name="Assistente de notícias", instructions="Você fornece os artigos de notícias mais recentes para um determinado tópico usando a pesquisa do DuckDuckGo.
instructions="Você fornece os artigos de notícias mais recentes para um determinado tópico usando a pesquisa do DuckDuckGo.", functions=[get_news_articles], news_agent = Agent(
functions=[get_news_articles], )
)
editor_agent = Agente(
model="llama3.2", name="Editor Assistant", functions=[get_news_articles], )
name="Editor Assistant", instructions="Você revisa e finaliza", ) editor_agent = Agent(
instruções="Você revisa e finaliza o artigo de notícias para publicação.",)
)

4. coordenação de fluxos de trabalho

Definimos uma função para executar nosso fluxo de trabalho de agregação de notícias:

def run_news_workflow(topic).
# Buscar notícias
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"]
# Passar as notícias para o editor para revisão final
edited_news_response = client.run(
agente=agente_editor,
messages=[{"role": "system", "content": raw_news}],]
)
print(f"{edited_news_response.messages[-1]['content']}")

5. sistemas operacionais

Por fim, podemos executar nosso agregador de notícias para qualquer tópico de interesse:

run_news_workflow("AI in Drug Discovery")

Código completo: app.py

from duckduckgo_search import DDGS
from swarm import Swarm, Agent
from datetime import datetime
current_date = datetime.now().strftime("%Y-%m")
# Inicializar o cliente do Swarm
cliente = Swarm()
# 1. criar uma ferramenta de pesquisa na Internet
def get_news_articles(topic).
print(f "Fazendo uma pesquisa de notícias do DuckDuckGo para {topic}...")
# Pesquisa do DuckDuckGo
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 "Falha ao encontrar resultados de notícias sobre {topic}."
# 2. criar o agente de IA
def transfer_to_editor_assistant(raw_news):
print("Passando o artigo para o editor assistente...")
return editor_agent.run({"role": "system", "content": raw_news})
Agente de notícias # para obter notícias
news_agent = Agente(
model="llama3.2",
nome="NewsAssistant",
instructions="Você fornece os artigos de notícias mais recentes sobre um determinado tópico, usando a pesquisa do DuckDuckGo." ,
functions=[get_news_articles], )
)
# Editar agente para editar notícias
agente_editor = Agente(
model="llama3.2",
name="agente_editor",
instructions="Você revisa e finaliza os artigos de notícias para publicação." ,
)
# 3. Criar fluxo de trabalho
def run_news_workflow(topic).
print("Executando o fluxo de trabalho do agente de notícias...")
# A primeira etapa: obter as notícias
news_response = client.run(
news_response = client.run( agent=news_agent,
messages=[{"role": "user", "content": f "Get news about {topic} on {current_date}"}],]
)
raw_news = news_response.messages[-1]["content"]
print(f "Fetched news: {raw_news}")
# Etapa 2: passar as notícias para o editor para revisão final
edited_news_response = client.run(
agente=agente_editor,
messages=[{"role": "system", "content": raw_news}],]
)
print(f"{edited_news_response.messages[-1]['content']}")
# Exemplo de execução de um fluxo de trabalho de notícias para um determinado tópico
run_news_workflow("AI in Drug Discovery")

saída de amostra (computação)

Executando o fluxo de trabalho do agente de notícias...
Executando a pesquisa de notícias do DuckDuckGo para IA na descoberta de medicamentos...
Notícias buscadas: Aqui está uma resposta formatada com base nos artigos de notícias.
**Inteligência artificial na descoberta de medicamentos: uma transformação revolucionária
A função da Inteligência Artificial (IA) na descoberta de medicamentos marca uma mudança revolucionária no setor farmacêutico. A IA usa algoritmos complexos para tomar decisões autônomas, aumentando os recursos humanos a partir da análise de dados, em vez de substituí-los....
**Desafios e limitações
Apesar dos avanços promissores, ainda há desafios e limitações no campo. O artigo "The Role of AI in Drug Discovery" (O papel da IA na descoberta de medicamentos) explora essas questões, destacando a necessidade de dados de alta qualidade, a resolução de questões éticas e a conscientização das limitações das abordagens baseadas em IA.
**IA na descoberta de medicamentos**
A IA tem o potencial de desempenhar um papel fundamental na descoberta e no design de medicamentos e no estudo das interações entre medicamentos:
* Farmacologia de múltiplos alvos: a IA pode prever a eficácia de compostos para várias doenças.
* Síntese química: a IA pode otimizar os processos de síntese química para uma produção mais rápida e eficiente.
* Reposicionamento de medicamentos: a IA pode identificar novos usos para medicamentos existentes.
* Previsão das propriedades dos medicamentos: a IA pode prever a potência, a toxicidade e as propriedades físico-químicas dos compostos.
** O futuro da IA na descoberta de medicamentos
A aplicação bem-sucedida da IA dependerá da disponibilidade de dados de alta qualidade, da resolução de questões éticas e da conscientização das limitações das abordagens baseadas em IA.

Benefícios da distribuição local de notícias com IA

  • negócios privados Todos os processamentos ocorrem em seu computador local, garantindo que seus dados permaneçam em suas próprias mãos.
  • personalização Você pode modificar facilmente as instruções de um agente ou adicionar um novo agente para atender às suas necessidades específicas.
  • Informações mais recentes Pesquisa com o DuckDuckGo: ao pesquisar com o DuckDuckGo, você sempre recebe as últimas notícias sobre o tópico de sua escolha.
  • Curadoria orientada por IA Assistente editorial: O assistente editorial ajuda a refinar e organizar as notícias coletadas para fornecer um resultado final mais polido.

chegar a um veredicto

Esse agregador local de notícias com tecnologia de IA demonstra o potencial da combinação de modelos de linguagem em grande escala com recursos de pesquisa na Web. Ao aproveitar o modelo Llama 3.2 da Ollama, o Swarm para orquestração de agentes e o DuckDuckGo para pesquisa, criamos uma ferramenta avançada que nos permite ficar informados sobre qualquer tópico de interesse, mantendo nossa privacidade e sendo executada inteiramente em computadores locais.

À medida que a IA continua a evoluir, as possibilidades de criação de ferramentas personalizadas e com tecnologia de IA continuarão a se expandir. Esse agregador de notícias é apenas o começo - imagine que outros aplicativos inovadores você poderia criar com essas tecnologias!


Aprendizagem fácil com IA

O guia do leigo para começar a usar a IA

Ajuda você a aprender a utilizar as ferramentas de IA com baixo custo e a partir de uma base zero.A IA, assim como o software de escritório, é uma habilidade essencial para todos. Dominar a IA lhe dará uma vantagem em sua busca de emprego e metade do esforço em seu trabalho e estudos futuros.

Ver detalhes>
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Criação de um agregador local de notícias de IA com Ollama, Swarm e DuckDuckGo

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil