任务
制作一个人工智能大模型自动推荐链接系统。
尝试API通义千问
编写一个Prompt提示词
Prompt的作用是,提供一个关键词,AI按照固定的JSON格式返回,方便后端处理。
假如你是一个互联网推荐专家,接下来我将给你固定格式
关键词:{关键词}
接下来你按照关键词搜索相关网站,生成五个链接,用以下固定格式回复我
不要产生任何多余的注释、解释!!
```
[
{"url":"链接1"},
{"url":"链接2"},
{"url":"链接3"},
{"url":"链接4"},
{"url":"链接5"},
```
增加一个callWithMessageAndRole
方法
之前的方法是固定了角色,新增一个callWithMessageAndRole
,将信息和角色都手动传入,增加灵活度。
public static String callWithMessageAndRole(String message, String role) throws NoApiKeyException, ApiException, InputRequiredException {
Generation gen = new Generation();
Constants.apiKey = "token";
MessageManager msgManager = new MessageManager(2);
Message systemMsg0 = Message.builder().role(Role.SYSTEM.getValue()).content(role).build();
Message userMsg1 = Message.builder().role(Role.USER.getValue()).content(message).build();
msgManager.add(systemMsg0);
msgManager.add(userMsg1);
QwenParam params = QwenParam.builder().model("qwen-max")
.messages(msgManager.get())
.seed(1234)
.topP(0.8)
.resultFormat("message")
.enableSearch(false)
.maxTokens(1500)
.temperature((float) 0.85)
.repetitionPenalty((float) 1.0)
.build();
GenerationResult result = gen.call(params);
// 只取出了有效数据
return result.getOutput().getChoices().get(0).getMessage().getContent();
}
编写Main函数进行测试
输入之前写好的Prompt提示词和提供的关键词,进行测试。
public static void main(String[] args) throws NoApiKeyException, InputRequiredException {
String role = "假如你是一个互联网推荐专家,接下来我将给你固定格式\n" +
"关键词:{关键词}\n" +
"接下来你按照关键词搜索相关网站,生成五个链接,用以下固定格式回复我\n" +
"不要产生任何多余的注释、解释!!\n" +
"```\n" +
"[\n" +
"{\"url\":\"链接1\"},\n" +
"{\"url\":\"链接2\"},\n" +
"{\"url\":\"链接3\"},\n" +
"{\"url\":\"链接4\"},\n" +
"{\"url\":\"链接5\"},\n" +
"```";
String message = "关键词:原神";
System.out.println(callWithMessageAndRole(message, role));
}
第一次测试
输出结果
```
[
{"url":"https://ys.webstatic.mihoyo.com/"},
{"url":"https://bbs.mihoyo.com/ys/"},
{"url":"https://www.genshin impact.com/"},
{"url":"https://genshin.honeyhunterworld.com/"},
{"url":"https://www.reddit.com/r/Genshin_Impact/"}
]
```
结果分析
只有两个网页可以正常打开,且网页都是主页,里面包含一些外网链接。第一次测试比较失败,
第二次测试
改进
通过阅读通义千问文档,API默认是关闭了联网搜索功能,需要读入参数.enableSearch(true)
才能使用,改进后继续进行测试。
输出结果
[
{"url":"https://ys.mihoyo.com/"},
{"url":"https://www.gamewith.net/zh-tw/games/205078/genshin-impact/"},
{"url":"https://bbs.mihoyo.com/ys/"},
{"url":"https://www.playstation.com/en-us/games/genshin-impact-ps4/"},
{"url":"https://apps.apple.com/cn/app/id1496620816"}
]
结果分析
本次测试,所有的网页都可以打开,其中有一个网站指向了404 NOT FOUND网站,但是推荐的网站全是主页,不能满足要求。
查看返回参数
主页使用通义千问联网,有明显的网页参考,尝试寻找返回类能否找到参考网页的返回。
经过搜索,没有类似的结果。
尝试在线的大语言模型
先尝试在线的大语言模型,若能成功使用再调用相关API。
通义千问
返回结果
[
{"url":"https://www.nature.com/subjects/artificial-intelligence"},
{"url":"https://ai.google/"},
{"url":"https://www.mckinsey.com/business-functions/mckinsey-analytics/our-insights/artificial-intelligence"},
{"url":"https://www.sciencedirect.com/journal/artificial-intelligence"},
{"url":"https://www.technologyreview.com/topic/artificial-intelligence/"}
]
不能满足要求
ChatGLM智能体
配置智能体,勾选联网能力,此外将稳定性调整到最高。
返回结果
```
[
{"url":"https://ys.mihoyo.com/main/"},
{"url":"https://baike.baidu.com/item/%E5%8E%9F%E7%A5%9E/22721089"},
{"url":"https://ys.mihoyo.com/download/"},
{"url":"https://www.taptap.cn/app/168332"},
{"url":"https://wiki.biligame.com/ys/%E9%A6%96%E9%A1%B5"}
]
```
全是下载网页,比较符合的百度百科还拼错了链接。
ChatGLM官方AI搜索智能体
返回结果
[
{"url":"www.yuanshen.com"},
{"url":"ys.mihoyo.com"},
{"url":"ys.mihoyo.com"},
{"url":"ys.mihoyo.com"},
{"url":"genshin.mihoyo.com"}
]
抬走。
ChatGPT 4o
返回结果
[
{"url":"https://aiindex.stanford.edu/2024-report/"},
{"url":"https://www.ibm.com/artificial-intelligence/what-is-ai"},{"url":"https://news.un.org/zh/story/2023/07/1122837"},{"url":"https://news.cctv.com/2023/06/01/ARTI1fh7pJ2LxUOa1U0PQeLK230601.shtml"},{"url":"https://www.technewsworld.com/story/ai-advancements-and-ethical-concerns-87235.html"}
]
所有网页均不可访问。
尝试给出网址
尝试给出网址,让AI访问。
部分网站可以总结内容,但是一旦提示提取URL,均不可行。
总体结论
使用Prompt提示词让AI进行推荐不可行,推测AI给出网址是进行随机拼接,并没有真正地进行搜索。
的确有AI进行了搜索参考网址,但是这部分内容无法在API返回信息中获取,且参考网址的时效性有待考量。
接下来的思路是,手动访问网址,提取出URL,交由AI进行数据清洗、挑选并推荐。
尝试给出网址
尝试给出网址,让AI访问。
部分网站可以总结内容,但是一旦提示提取URL,均不可行。
总体结论
使用Prompt提示词让AI进行推荐不可行,推测AI给出网址是进行随机拼接,并没有真正地进行搜索。
的确有AI进行了搜索参考网址,但是这部分内容无法在API返回信息中获取,且参考网址的时效性有待考量。
接下来的思路是,手动访问网址,提取出URL,交由AI进行数据清洗、挑选并推荐。