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
- Ollama com Llama 3.2 Esse é o coração do nosso sistema, alimentando nossos agentes de IA.
- Enxame Estrutura de orquestração de agentes que nos permite criar e gerenciar vários agentes de IA.
- 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:
- Assistente de imprensa Pesquisa: Use a pesquisa do DuckDuckGo para obter os artigos de notícias mais recentes sobre tópicos específicos.
- 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!