继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

打造Talk-to-Page:与任何网站聊天对话神器

慕容3067478
关注TA
已关注
手记 240
粉丝 3
获赞 21

你有没有想过与网页聊天,或者真的跟它说话?好吧,我实现这个想法,建立了一个应用程序!它叫Talk-to-Page。你只要输入一个网址,就可以开始与这个网页聊天了。

这里有个快速示范,展示它是怎么操作的:

此处省略了部分内容

我为什么要这样做?

聊天机器人很酷,但它们也有些不足。大多数聊天机器人无法理解网页的具体细节。如果你用检索增强生成(RAG)来创建聊天机器人,它会显得有点局限。你为一个页面设置好后,它就只能提供那个页面的固定内容。

所以我想:为什么不把它做成动态的呢?

如果能让聊天机器人接受任何网址并实时适应会怎么样?

就这样诞生了,Talk-to-Page

……

它是怎么来的

我基于我的 coagents-starter 工具包。这是用来用 LangGraph 和 CopilotKit 创建全栈 AI 应用程序和 AI 代理程序的搭建工具。

这里有个新手套件,如果你想看看:

GitHub logo GitHub仓库: kom-senapati / GitHub项目: coagents-starter (一个初学者项目)

🤖 构建代理式全栈 app 的启动套件

CoAgents 入门

这个例子包括一个超级简单的入门项目。

这些指令假设您已经在coagents-starter/目录里了。

运行代理程序

首先,安装一下依赖包:

    cd agent
    poetry install
切换到agent目录并安装依赖包 (Switch to the agent directory and install dependencies)

点击全屏显示,点击退出全屏

然后,在 ./agent 目录下创建一个名为 .env 的文件,并在其中添加以下内容:

GROQ_API_KEY=... # the API key for GROQ

请注意:请确保您提供的OpenAI API密钥支持gpt-4o功能。

接着,运行示例程序。

使用 poetry 运行 demo 示例

进入全屏模式 / 退出全屏模式

开始使用用户界面

首先,安装所需的依赖项:

    cd ./ui
    pnpm i
```切换到ui目录并安装依赖

点击全屏模式 退出全屏模式

接着,在 `./ui` 创建一个 `.env` 文件,内容为:
GROQ API密钥设置

GROQ_API_KEY=...


接下来,启动 Next.js 项目:

运行开发命令如下:

pnpm run dev

这会启动开发服务器。

全屏查看 退出全屏

使用

访问 http://localhost:3000

LangGraph 工作室

运行 LangGraph 研究室,然后将 ./agent 文件夹导入。

一定要先创建上面提到的.env

故障排除

遇到问题时,你可以试试以下几种方法:

  1. 确保没有其他本地应用程序正在使用8000端口。
  2. /agent/my_agent/demo.py 中,将 0.0.0.0 改成 127.0.0.1 或改为 localhost

查看 GitHub 上的内容

后端使用FastAPI来部署LangGraph代理,而前端则使用Next.js构建。

……

构建代理程序

第一步是创建这个代理。我采取了模块化的办法,将它拆分成更小的部分,比如状态、节点和边。你可以点击这里查看文件夹结构:

代理代码

我把 my_agent 重命名为 rag_agent。这意味着我需要在每个地方更新名称,从文件夹(如)到文件(如 demo.py),再到配置文件(如 langgraph.jsonpyproject.toml)。

正在更新网址:

  • 节点: 我添加了一个名为 update_url 的新节点,该节点会在 URL 更改时更新代理的检索器功能。
  • 边: 创建了一个名为 new_url 的边,它监听名为 "URL 更新" 的消息并触发 update_url 节点更新检索器。

它是一个自我检索和生成(self-RAG)的代理,你可以通过这个链接查看一下它的教程和代码here

这里就是最终的代理网络图。

图-img


* * *
``` 或 ...

(注:在中文中,通常使用“...”(省略号)来表示省略内容或使用“...”(破折号)来表示断开。此处根据上下文选择合适的表示方式。)

#### 搭建UI

界面相当简单直观,但我希望让它更有趣。我没有使用CopilotKit自带的助手功能,而是自己开发了一个**自定义聊天界面**。

你可以在这里面找到代码哦:

[自定义聊天窗口](https://github.com/kom-senapati/talk-to-page/blob/main/ui/components/chat-interface.tsx)

为了背景,我使用 [Magic UI 的 Retro Grid](https://magicui.design/docs/components/retro-grid) 添加了一个 **复古网格背景**。我还使用 [v0.dev](https://v0.dev) 实现了一个 **矩阵雨背景**,当 URL 更新时,它会持续 5 秒。

**语音交互:**

为了提供更好的体验,比普通的聊天机器人,我增加了一些功能:

* **语音转换成文字** 用户输入时使用。
* **文字转换成语音** 智能助手回复时使用。

现在,你可以真的能和网页“聊天”了。对吧,酷?😉

* * *

#### 让一切都运行顺畅

启动套件已经预配置了 Tailwind CSS、Shadcn 和 CopilotKit。为了让代理正常运行,我刚刚在 `ui/app/layout.tsx` 里更新了代理名称。

* * *

### 我的经验

开发这个应用真的很有意思,也很有成就感。学**LangGraph**和**LangChain**花了点时间,但和CopilotKit的整合却比预期的要顺利很多。

特别感谢[CopilotKit 的文档](https://docs.copilotkit.ai/coagents)让变得简单明了。

* * *

那就是我创建**Talk-to-Page**的方法!

你觉得这个项目怎么样?你会做类似的事情吗?让我知道!

祝你今天过得开心!下次见啦!

如果觉得不错,请给 CopilotKit 加星并试试 talk-to-page :)

[星标 CopilotKit ⭐](https://github.com/CopilotKit/CopilotKit)

[星对话页面 🤝.](https://github.com/kom-senapati/talk-to-page)

可以点击关注我,了解更多这样的内容!
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP