腾讯云 Octop 快速入门:一小时跑通一个自托管的多用户 Agent 平台
Octop 是腾讯云开源的、可以自己部署的多用户 Agent 平台,MIT 协议, 虽然叫Octop但是大家都叫他"开源版workbuddy"。单个 Python 进程就把对话、技能、知识库、IM 通道、定时任务和插件系统全装下了。这篇按「装、配、用、扩展、加固」的顺序,把一小时能跑通的路径完整走一遍,最后附一个从零写的插件。
Octop 是腾讯云开源的、可以自己部署的多用户 Agent 平台,MIT 协议, 虽然叫Octop但是大家都叫他"开源版workbuddy"。单个 Python 进程就把对话、技能、知识库、IM 通道、定时任务和插件系统全装下了。这篇按「装、配、用、扩展、加固」的顺序,把一小时能跑通的路径完整走一遍,最后附一个从零写的插件。
如果你已经用过一些 LLM SDK(其实我只用过Langchain),你会发现一个共性问题:模型调用很快能写出来,但“像样的聊天界面 + 会话管理 + 上线部署”这三件事会很快把代码变复杂。Chainlit就是专门解决这个问题的:用很少的 Python 代码把对话应用搭起来,并且保留足够的扩展能力。
好吧, 你可能说,我可以让AI生成前端呀, 但是吧, 一是它不一定符合你的需求, 二是它需要你去维护(维护很费成本的哦),三是完善的前端很费token呢。
当然啦,也可以直接使用langchain自带的部署功能,不过还需要注册个账户,还不知道后面会不会额外收费,总的来说感觉差了一点什么,可能这是大多数流行应用不用langchain的原因?
其实langsmith的功能是真的棒,可是我就是不想注册个账户而已.
之前的文章:
前面几篇文章,咱们研究了Workers的各种功能。今天,我要跟你聊点更实用的——用Cloudflare Workers的Static Assets功能来托管网站。你可能会想:“托管网站?这不是有GitHub Pages、Vercel这些免费方案吗?”
莫急,听我娓娓道来,告诉你为啥Workers + Static Assets可能是你见过最香的免费托管方案!
之前的文章:
如果你看过这个系列的其他文章那么基本上可以玩转workers,唯一的痛点可能是你不擅长或者不喜欢javascript,不喜欢javascript也没关系,只有用其他编程语言呗,如果你喜欢python和rust的话!
之前的文章:
前面几篇,咱们把Workers当成了一个“动态处理器”,玩转了请求,响应,缓存,认证,重定向等。但如果我告诉你,Workers还能当个静态文件服务器用,你信吗?没错,这货还能干Web Server的活儿!
之前的文章:
咱们前面两篇,把请求和响应这两大块给盘得明明白白了。现在,是时候发散一下想像力了!今天我们来看看怎么用Cloudflare Workers实现认证、重定向和缓存这三大金刚。
之前的文章:
书接上回,在上一篇文章里,咱们聊了怎么在请求到达服务器之前,像个“中间人”一样对它“动手动脚”。这次,咱们把视角翻转一下,看看当服务器把响应(Response)辛辛苦苦准备好,准备发回给浏览器时,我们又能怎么在半路上把它截胡,然后来一波骚操作。有了它,你就能对响应内容进行实时、动态的修改。想想看,这意味着什么?
之前的文章:
首先来看看Cloudflare Workers最基础也最强大的能力之一:处理客户端请求。在请求到达源服务器之前,对客户端发起的HTTP请求进行全面的“增删改查”操作。这让我们可以在网络边缘(Edge)(不知道啥叫网络边缘也没关系,反正就是在后端之前的一个代理)处理流量的超能力,无需改动任何后端代码,就能实现许多非常复杂的功能。
众所周知的是互联网山有一个超级知名的大善人,此人被世人尊称为赛博佛祖,你只需要自己拥有一个域名就能在上面解锁很多强大的功能,包括但不限于防火墙,workers,域名解析,邮件服务等。
Pingora一直是我比较期待的项目,所以写个入门系列教程吧。之前研究过一些其他产品,比如nginx, nginx-ingress, apisix, bfe等, 前三者植入业务基本靠lua或者说openresty 而bfe的社区实在是一言难尽, 所以我认为Pingora会成为Rust的明星项目,虽然没达到预期,但至少提供了一个框架,一个社区。
本文主要是对之前reqwest库的一个简单的扩展,通过写一个简单的爬虫项目来练习练习Rust, 爬虫有用也有趣,但是不要给目标网站造成过大的压力,否则可能会触犯法律,切记切记。
几乎所有编程语言都是支持命令行库, Rust自然也不例外, 不过Rust标准库不支持,而是第三方库支持,比较常用和主流的是Clap这个库, 通过它可以很简单的组建自己的命令行工具,这样就不用花太多时间放在参数处理上了。
Rust作为一门通用编程语言,系统级的编程语言写个端口扫描器并不是太复杂,所以本文也会将太多的精力放在怎么扫描上,而是更多的时间放在如何利用Rust快速的扫描和探测端口,即尽可能高并发的完成这个任务,本文从单线程到多线程,最后到异步,算是一个练手项目吧。
虚假的全栈开发,前端后端分离然后分别使用不同的编程语言来开发前后端,真实的全栈开发,前后端全用Rust编程语言,无需打开两个项目分别维护,本文使用的技术栈是Leptos, tailwindcss, trunk。
Rust支持两种宏,一种是声明宏,一种是过程宏,前者相较于后者还是比较简单的。本文主要是讲解Rust元编程里的声明宏,通过声明宏可以减少一些样板代码,它是一个用代码生成代码的技术。