百度SEO

百度SEO

Products

当前位置:首页 > 百度SEO >

打造具备工具调用与定时任务功能的AI智能助手。

96SEO 2026-04-26 11:51 3


我们对于人工智Neng的期待早Yi超越了简单的“一问一答”。试想一下Ru果你的AI助手不仅Neng陪你谈古论今还Neng帮你处理繁琐的数据库记录、定时发送邮件提醒,甚至在深夜自动检索网络信息,那将是怎样一种体验?这不再是科幻电影里的桥段,而是我们今天要亲手构建的现实。本文将带你深入探索如何利用NestJS的稳健架构与LangChain的强大编排Neng力,打造一个具备工具调用与定时任务功Neng的AI智Neng体。

打造具备工具调用与定时任务功Neng的AI智Neng助手。

一、 架构的艺术:从对话到行动的跨越

我们要构建的不仅仅是一个聊天机器人,而是一个具备“行动力”的Agent。这需要我们将大语言模型与具体的业务逻辑进行深度绑定。在这个过程中,NestJS提供了极佳的模块化支持,而LangChain则负责让模型理解何时以及如何调用这些工具。

我们需要搭建起项目的骨架。这不仅仅是安装几个依赖包那么简单,geng像是在为一位即将诞生的数字生命构建神经系统。我们需要配置好环境变量,确保API Key的安全,同时引入必要的依赖库。

OPENAI_API_KEY=sk-xxx
OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
MODEL_NAME=qwen-plus

在根目录创建 `.env` 模块是工程化的第一步,它将敏感信息与代码逻辑解耦。接着,我们在 `AppModule` 中配置全局的 `ConfigModule`,这是整个系统配置的基石。

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { AiModule } from './ai/ai.module';
import { ConfigModule } from '@nestjs/config';
@Module({
  imports: ,
  controllers: ,
  providers: ,
})
export class AppModule {}
二、 赋予AI“双手”:工具调用的实现

工具调用是让AI从“嘴强王者”转变为“实干家”的关键。我们需要定义一系列工具,比如发送邮件、网络搜索、数据库操作等,并将它们注册到LangChain的模型中。

1. 邮件发送Neng力

想象一下当AI分析出你需要发送一封重要邮件时它Neng自动调用SMTP服务完成发送。为了实现这一点,我们需要集成 `@nestjs-modules/mailer`。配置过程虽然略显繁琐,涉及到SMTP主机、端口以及授权码的设置,但一旦配置完成,后续的调用将变得异常优雅。

MAIL_HOST=smtp.qq.com
MAIL_PORT=587
MAIL_SECURE=false
MAIL_USER=
MAIL_PASS=your_authorization_code
MAIL_FROM="No Reply" <>

在代码层面我们通过 `useFactory` 模式创建一个 `SEND_MAIL_TOOL`。这个工具封装了 `mailerService.sendMail` 的逻辑,并定义了清晰的Zod Schema,确保AI知道需要哪些参数才Neng触发此功Neng。

{
  provide: 'SEND_MAIL_TOOL',
  useFactory:  => {
    return tool(
      async  => {
        await mailerService.sendMail({
          to,
          subject,
          text: text ?? '没有文本内容',
          html: html ?? `

${text ?? ''}

`, from: configService.get, }); }, { name: 'send_mail', description: '发送邮件工具,参数包括收件人邮箱、邮件主题和邮件内容', schema: z.object({ to: z.email.describe, subject: z.string.describe, text: z.string.optional.describe, html: z.string.optional.describe, }), }, ); }, inject: , },
2. 网络搜索的视野

AI的知识库虽然庞大,但往往存在滞后性。为了让助手获取实时信息,我们集成了博查的Web Search API。这就像是给AI装上了一双随时Ke以浏览互联网的眼睛。通过 `fetch` 请求,我们将搜索结果格式化后返回给模型,使其Neng够基于Zui新数据回答问题。

{
  provide: 'WEB_SEARCH_TOOL',
  useFactory:  => {
    return tool(
      async  => {
        const boChaUrl = 'https://api.bochaai.com/v1/web-search';
        // ... 请求逻辑 ...
        const formatted_results = webpages
          .map => {
            return `引用: ${idx + 1}
                    标题: ${page.name}
                    URL: ${page.url}
                    摘要: ${page.summary}`;
          })
          .join;
        return formatted_results;
      },
      // ... schema 定义 ...
    );
  },
  inject: ,
},
3. 数据库操作的掌控

对于企业级应用而言,Neng够读写数据库是核心Neng力。我们使用 TypeORM 来管理 MySQL 数据库。为了让AINeng够操作用户表,我们定义了一个 `db_users_crud` 工具。这个工具支持增删改查操作,并通过 `action` 参数来区分具体行为。

这里有一个细节值得玩味:我们在 `ToolModule` 中注入了 `UsersModule`,这体现了NestJS依赖注入的强大之处。AI不再是一个孤立的存在它Ke以直接操作业务数据层。

{
  provide: 'DB_USERS_CRUD_TOOL',
  useFactory:  => {
    return tool(
      async  => {
        switch  {
          case 'create': {
            if  {
              return '创建用户时name 和 email 是必填的';
            }
            const users = await usersService.create;
            return `用户创建成功,ID: ${users.id}, Name: ${users.name}, Email: ${users.email}`;
          }
          // ... 其他 case 处理 ...
        }
      },
      // ... schema 定义 ...
    );
  },
  inject: ,
},
三、 赋予AI“时间感”:定时任务系统的构建

Ru果说工具调用赋予了AI空间上的行动力,那么定时任务则赋予了它时间上的感知力。我们希望AI不仅Neng响应指令,还Neng在特定的时间点自主执行任务。这需要一个健壮的调度系统。

我们设计了三种任务模式:`cron`、`every`、`at`。为了管理这些任务,我们创建了 `Job` 实体,并利用 NestJS 的 `ScheduleModule` 结合 `cron` 库来实现调度。

@Entity
export class Job {
  @PrimaryGeneratedColumn
  id: string;
  @Column
  instruction: string;
  @Column
  type: JobType;
  // ... 其他字段定义 ...
}

在 `JobService` 中,`startRuntime` 方法是核心引擎。它会根据任务类型动态注册调度器。例如对于 `cron` 任务,它会创建一个 `CronJob` 实例;对于 `every` 任务,则使用 `setInterval`。这种动态注册机制非常灵活,允许我们在运行时通过AI指令添加新任务。

private startRuntime {
  if  {
    const cronJobs = this.schedulerRegister.getCronJobs;
    const existingFlag = cronJobs.get;
    if  {
      existingFlag.start;
      return;
    }
    const newCronJob = new CronJob => {
      this.logger.log;
      await this.entityManager.update });
    });
    this.schedulerRegister.addCronJob;
    newCronJob.start;
    return;
  }
  // ... 其他类型处理 ...
}

geng有趣的是我们将这个任务管理功Neng本身也封装成了一个工具 `job_tool`。这意味着,你Ke以直接用自然语言告诉AI:“每隔10秒发邮件到我的邮箱提醒我走动”,AI会解析这段话,计算出 `everyMs`,并调用 `job_tool` 将其注册到调度器中。这种“用魔法打败魔法”的设计,极大地提升了系统的自动化程度。

四、 智Neng体的核心循环:流式响应与决策

有了工具和时间管理Neng力,我们需要一个核心的大脑来协调这一切。这就是 `AiService` 和 `JobAgentService` 的职责。

在处理用户请求时我们采用了Agent Loop模式。模型 生成一个响应,Ru果其中包含工具调用,系统会拦截并执行这些工具,然后将结果反馈给模型,让其继续思考,直到Zui终给出答案。

async runJob: Promise {
  const messages: BaseMessage = ;
  while  {
    const aiMessage = await this.modelWithTools.invoke;
    messages.push;
    const toolCalls = aiMessage.tool_calls ?? ;
    if  {
      return String;
    }
    for  {
      // 执行工具并将结果推入消息历史
      if  {
        const result = await this.sendMailTool.invoke;
        messages.push);
      } // ... 其他工具处理 ...
    }
  }
}

为了提升用户体验,我们还实现了流式接口。相比于传统的同步等待,流式输出让用户Neng实时kan到AI的“思考”过程,这种交互感要强烈得多。在 `AIController` 中,我们通过 `Observable` 将流式数据转换为SSE事件推送到前端。

@Sse
chatStream query: string) {
  const stream = this.aiService.runChainStream;
  const result = from.pipe => ));
  return result;
}

通过构建这样一个系统,我们实际上是在探索人机协作的新边界。AI不再是被动的问答机器,而是变成了具备主动执行Neng力的智Neng伙伴。它Neng理解你的意图,调用外部API,操作数据库,甚至管理自己的时间表。

当然这只是一个开始。在未来的迭代中,我们Ke以引入geng复杂的记忆机制,让AI记住用户的偏好;或者增加多模态支持,让它Neng处理图片和音频。但无论如何,核心的架构思想——即通过LangChain连接大模型与业务逻辑,通过NestJS提供稳健的后端支撑——是不会变的。

当你kan到控制台输出“执行定时任务:提醒我喝水”,或者邮箱里准时收到AI整理好的周报时你会深刻地感受到:代码是有温度的,而AI,正在让我们的生活变得geng加美好。希望这篇教程Neng激发你的灵感,去打造属于你自己的智Neng助手。


标签: 助手

SEO优化服务概述

作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

SEO优化核心服务

网站技术SEO

  • 网站结构优化 - 提升网站爬虫可访问性
  • 页面速度优化 - 缩短加载时间,提高用户体验
  • 移动端适配 - 确保移动设备友好性
  • HTTPS安全协议 - 提升网站安全性与信任度
  • 结构化数据标记 - 增强搜索结果显示效果

内容优化服务

  • 关键词研究与布局 - 精准定位目标关键词
  • 高质量内容创作 - 原创、专业、有价值的内容
  • Meta标签优化 - 提升点击率和相关性
  • 内容更新策略 - 保持网站内容新鲜度
  • 多媒体内容优化 - 图片、视频SEO优化

外链建设策略

  • 高质量外链获取 - 权威网站链接建设
  • 品牌提及监控 - 追踪品牌在线曝光
  • 行业目录提交 - 提升网站基础权威
  • 社交媒体整合 - 增强内容传播力
  • 链接质量分析 - 避免低质量链接风险

SEO服务方案对比

服务项目 基础套餐 标准套餐 高级定制
关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

SEO优化实施流程

我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

1

网站诊断分析

全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

2

关键词策略制定

基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

3

技术优化实施

解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

4

内容优化建设

创作高质量原创内容,优化现有页面,建立内容更新机制。

5

外链建设推广

获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

6

数据监控调整

持续监控排名、流量和转化数据,根据效果调整优化策略。

SEO优化常见问题

SEO优化一般需要多长时间才能看到效果?
SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
你们使用白帽SEO技术还是黑帽技术?
我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
SEO优化后效果能持续多久?
通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
你们提供SEO优化效果保障吗?
我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

SEO优化效果数据

基于我们服务的客户数据统计,平均优化效果如下:

+85%
自然搜索流量提升
+120%
关键词排名数量
+60%
网站转化率提升
3-6月
平均见效周期

行业案例 - 制造业

  • 优化前:日均自然流量120,核心词无排名
  • 优化6个月后:日均自然流量950,15个核心词首页排名
  • 效果提升:流量增长692%,询盘量增加320%

行业案例 - 电商

  • 优化前:月均自然订单50单,转化率1.2%
  • 优化4个月后:月均自然订单210单,转化率2.8%
  • 效果提升:订单增长320%,转化率提升133%

行业案例 - 教育

  • 优化前:月均咨询量35个,主要依赖付费广告
  • 优化5个月后:月均咨询量180个,自然流量占比65%
  • 效果提升:咨询量增长414%,营销成本降低57%

为什么选择我们的SEO服务

专业团队

  • 10年以上SEO经验专家带队
  • 百度、Google认证工程师
  • 内容创作、技术开发、数据分析多领域团队
  • 持续培训保持技术领先

数据驱动

  • 自主研发SEO分析工具
  • 实时排名监控系统
  • 竞争对手深度分析
  • 效果可视化报告

透明合作

  • 清晰的服务内容和价格
  • 定期进展汇报和沟通
  • 效果数据实时可查
  • 灵活的合同条款

我们的SEO服务理念

我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

提交需求或反馈

Demand feedback