最近看到一个比较有意思的 AI 项目,叫 AI 时间线,顾名思义,就是借助 AI 来创建某个关键字的时间线。主页界面很简单,就是一个输入框。
我在输入辛亥革命后,就会生成下图的时间线,将辛亥革命的各个关键点都列了出来。我看到这个效果觉得很惊艳,会有很多场景需要这类时间线,例如某段感兴趣的历史、某个产品的更新过程等。
作者说这个项目是在过年期间花了半天时间完成的,现在是 2 人全职,靠广告收入,还能盈利,目前项目也已开源,源码在 Github 上可以访问。源码是用 Java 编写的,我在大学里学过,之后就再也没用过,还好源代码并不多,翻翻找找,发现了些关键技术。
项目中会涉及两个大模型,百度的千帆大模型和阿里的百炼大模型,两者都提供了 API 供第三方调用,付费方式有包资源包和后付费,具体没怎么细看。
一、千帆大模型
千帆大模型可以直接用百度账号登录,登录后需要创建应用,创建后可以得到 API Key 和 Secret Key。
创建完成后,就能到示例代码一栏,调试对外的 API。例如选择 chat 接口,选择应用后,默认会填充 client_id 和 client_secret。
请求中的 body 需要自定义指令,其中“辛亥革命”是我输入的关键词,这样才能让 AI 去生成内容。
[ { "role": "user", "content": "辛亥革命的发展历史,每行按照时间:事件格式输出,以冒号分隔" } ]
在 AI 执行完毕后,会在 body 中增加一个对象,包含生成的内容。
[ { "role": "user", "content": "辛亥革命的发展历史,每行按照时间:事件格式输出,以冒号分隔" }, { "role": "assistant", "content": "辛亥革命是中国近代史上的一次重要革命,它结束了中国的君主专制制度,建立了中华民国。
以下是辛亥革命的发展历史,按照时间:事件格式输出:\n\n1911年10月10日:武昌起义爆发,标志着辛亥革命的开始。\n
1912年1月1日:孙中山在南京宣誓就任中华民国临时大总统,中华民国正式成立。\n1912年2月12日:清朝最后一位皇帝溥仪宣布退位,
中国君主专制制度结束。\n1912年3月11日:《中华民国临时约法》公布,确立了中华民国的民主共和制度。\n1912年4月1日:
孙中山辞去临时大总统职务,让位给袁世凯。\n1913年3月20日:宋教仁遇刺,成为二次革命的导火索。\n1915年12月12日:
袁世凯宣布接受帝位,改国号为中华帝国,复辟帝制。\n1916年3月22日:袁世凯取消帝制,中华帝国结束。\n1917年7月1日:
张勋复辟,拥立溥仪再次登基,但仅持续了12天。\n1917年7月14日:张勋复辟失败,溥仪再次退位。\n1919年10月10日:
中华民国北洋政府颁布《中华民国国歌》。\n1921年1月1日:孙中山在广州就任非常大总统,继续推动民主革命。\n
1922年6月16日:陈炯明叛变,孙中山被迫离开广州。\n1923年2月21日:孙中山返回广州,继续领导革命运动。\n
1925年3月12日:孙中山在北京逝世,享年59岁。\n1927年4月18日:蒋介石在南京成立中华民国国民政府,成为国民政府主席。\n
1928年12月29日:张学良宣布东北易帜,中华民国实现了形式上的全国统一。\n1949年10月1日:中华人民共和国成立,
中华民国政府迁往台湾。\n\n辛亥革命虽然结束了中国的君主专制制度,但中国此后仍然经历了多次内战和政治动荡,
直到中华人民共和国的成立,才最终实现了国家的相对稳定和统一。" } ]
二、百炼大模型
百炼大模型需要用阿里云的账号登录,单击阿里云 AccessKey 获取来创建 AccessKey。注意,AccessKey Secret 只能在生成时查看,需要额外存储,否则就不能再查看了。
然后就是开通百炼大模型服务,访问百炼大模型控制台。在模型广场/应用广场,均可点击开通模型调用服务。开通调用服务后才能测试模型体验、调用模型或应用体验服务。开通后,还会短信提醒。
现在可以在模型体验一栏,选择模型调试,输入系统人设,例如“你是一个历史学家”,再输入指令,点击执行就能得到结果,默认选择的是通义千问模型。
自定义的指令如下,其中“辛亥革命”是我输入的关键词。
请根据时间线按照给定的格式列出辛亥革命的发展历史,每行一条内容,输出格式如下:
1998年:北京京东世纪贸易有限公司成立
2004年:京东正式涉足电子商务领域
本文并未涉及到代码层,只是稍微讲解了下 AI 的应用,在此基础上,就能组织逻辑完成自己所需要的业务,两个平台的文档都比较丰富,消化需要点时间。接下来抛砖引玉,再看一个有趣的 AI 项目。
三、AI 爬虫
在网上还看到一个基于 AI 的爬虫项目,基于 OpenAI 提供的 AI 大模型,让 AI 简化很多繁琐的操作,其实就是用指令爬取 DOM 中的内容。
以往都是需要自己用规则去匹配,例如下面这段 PHP 代码,pq 相当于 jQuery 中的 $ 符号,根据匹配规则去查找 DOM 节点,然后做一系列操作。
for($i = 1; $i <= 10; $i++) { //...抓取本地页面... phpQuery::newDocument($html); //初始化对象$urls = array(); foreach(pq('.search-hos-info dl dt a') as $item) { array_push($urls, pq($item)->attr('href')); //医院详情 } }
而现在就不需要了,直接输入各类指令即可,描述的越清楚越好。
// 让 AI 获取图片链接, 并去重 (描述越详细越好) const srcResult = await crawlOpenAIApp.parseElements( highlyHTML, '获取图片链接, 不要source里面的, 并去重' )