V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
lhx2008
V2EX  ›  分享创造

今日诗词 API,根据时间、地点、天气、事件智能返回一句古诗词,支持图片和 JSON 返回,提供 SDK,一分钟添加到网站(原一言古诗词 API 升级版)

  lhx2008 ·
xenv · 2018-09-25 21:42:08 +08:00 · 18891 次点击
这是一个创建于 2242 天前的主题,其中的信息可能已经有所发展或是发生改变。



今日诗词



官网: https://www.jinrishici.com/

调用文档: https://www.jinrishici.com/doc/


简介

今日诗词 API 是一个可以返回一句古诗词名句的接口。它可以通过图片和 JSON 格式调用。今日诗词 API 根据不同地点、时间、节日、季节、天气、景观、城市、事件进行智能推荐。


怎么调用

博客类的网站可以直接使用 sdk 调用

引入:

<script src="https://sdk.jinrishici.com/v2/browser/jinrishici.js" charset="utf-8"></script>

在需要添加的地方加一个 id="jinrishici-sentence"

比如:

<span id="jinrishici-sentence">正在加载今日诗词....</span>

另有回调函数,可以自行处理,详见 文档

论坛文章可以调用图片

![今日诗词]( https://v2.jinrishici.com/one.svg)

( V2EX 回帖不支持这个)

另有小程序 SDK,详见 文档


为什么要做这个接口

上次在 v2 公开的 旧版本接口 还挺多人使用的,所以花了点时间重做了这个古诗词接口。

在一些游戏中,根据游戏内不同的天气或日期,可以触发一系列“奇遇”或者“成就”,这个感觉非常过瘾。我的想法也是想打通虚拟与现实的界限,做一个没有人做过的诗词推荐产品。当然也感谢一些网友(见 文档 致谢)的建议。


推荐怎么做的

在推荐方面,主要是能根据真实世界的环境做出诗词推荐。这个和传统的推荐系统不同,并不是基于历史数据集推荐的的形式,而主要是利用时间地点上下文信息,把时间地点天气信息转化为事件,根据事件标签进行相关推荐。这个领域我目前还没有看到有相关的产品,所以也是摸石头过河的状态。在评估诗词好坏,推荐契合度的时候,也引入了一些指标,但是具体效果仍待评估。

当然这也可能是一个恶性循环,因为我们没有办法收集用户的喜好,所以可能永远没有办法做到根据个人喜好推荐。当然,也有考虑商用版本,可以基于注册用户的推荐。

这个产品只有我一个人完成,所以无论是推荐事件制定还是诗词源标注上,都是以我自己的经验制定和打标,难免有偏颇之处,不过广大 v 友也可以提提意见,看看如何不断改进这个系统。十分感谢。

详细的推荐思路和推荐标签: https://www.jinrishici.com/doc/#how


关于产品

为了方便广大赖人站长朋友添加这个 API 到网站上,我在上一个版本就已经“独家”搞出基于 svg 的接口返回的形式,不过具体使用上可能还是稍微麻烦。现在我直接把 SDK 也写好,就可以像百度统计一样直接复制调用了。

我也想把影响力扩展到小程序上面,我们为小程序也提供了 SDK,并且我重新注册了一个 .com 域名并且备案(旧接口仍然提供服务,域名不变)。也请 v 友相信这个接口是想长久做的。


关于开发

上一个版本接口用的是 vert.x 开发,vert.x 引入了大量 js 风格,在中大型项目上面非常蛋疼,比如没有 POJO,全是 JsonObject。没有接口,只有类似反射的调用方法。没有 IOC,只能自己 new。还有可怕的回调地狱。

好在 Spring 给了 Java 异步开发者一些希望。Spring Webflux 经过一年多的迭代,已经达到基本能用的水平。尤其是配套的 Reactor 3 采用了类似 Rxjava 的链式操作(或者可以理解为 Stream 的异步加强版),大幅简化了并行开发,异步开发的难度,提高了可读性。目前 Spring Webflux 已经集成在 Spring Boot 2 中,无缝和 SpringMVC 使用方法对接,并且可以无缝享受到 Spring Boot 全家桶。本接口采用 Webflux 开发。

然而 Webflux 也继承了 Spring 家一贯臃肿的风格,性能比 Vert.x 差不少,不过好歹也是运行在 Netty 上,比同步开发的响应速度还是有质的提高。


写在后面

更多有关本产品的细节,我已经在 文档 中阐述。当然,在使用之前,你需要同意我们的使用协议。(不能使用在违法网站上等)。

最后,诚挚的感觉各位 v 友的支持。

116 条回复    2018-12-12 13:58:45 +08:00
1  2  
lhx2008
    101
lhx2008  
OP
   2018-10-23 08:43:12 +08:00 via Android
@agonyperkey 二十四节气的诗有一些,但是能提现的一个节气的句子就不太多
agonyperkey
    102
agonyperkey  
   2018-10-23 09:08:18 +08:00
@lhx2008 这样的话,那这条建议还不太成熟😂
gamecreating
    103
gamecreating  
   2018-10-27 17:16:03 +08:00
马克一下
Maxbee
    104
Maxbee  
   2018-10-27 21:52:42 +08:00
赞赞赞
MineDog
    105
MineDog  
   2018-10-27 23:11:14 +08:00
最近正在搭博客,正好用上
honmaple
    106
honmaple  
   2018-10-28 00:12:36 +08:00
哈,我之前也写过一个简单的 https://poem.honmaple.com ,不过没有太多功能,就随机返回一首诗(用空格键和左右键盘切换下一首)
bitwater
    107
bitwater  
   2018-11-02 13:53:31 +08:00
edsheeran
    108
edsheeran  
   2018-11-02 14:28:29 +08:00
加入 opencc 繁体支持?
lhx2008
    109
lhx2008  
OP
   2018-11-02 17:50:30 +08:00 via Android
@bitwater 看截图,你有可能接入错误啦。请确认有没有保存 Token,没有保存 Token 会导致严重问题。我没有公开后端调用的 API,后端调用需要
1. 为每个微信用户获取,保存一个 Token (统一申请一个 Token 没有问题,但是推荐效果大幅下降)
2. 传客户端的 IP 地址,但是微信好像没有办法获取到。这样会导致会根据服务器所在地的天气和时间来推荐,推荐效果是非常差的。

所以推荐还是用 https://gushi.ci 的随机借口,限制比较少
lhx2008
    110
lhx2008  
OP
   2018-11-02 17:51:07 +08:00 via Android
@edsheeran 这个可以考虑哈哈
seymours
    111
seymours  
   2018-11-13 11:03:27 +08:00
感谢,已经加入博客中
lyseky
    112
lyseky  
   2018-11-16 08:28:50 +08:00 via Android
matk
circleee
    113
circleee  
   2018-11-16 08:39:38 +08:00
支持 , 看看怎么玩比较好。
omnigeeker01
    114
omnigeeker01  
   2018-11-16 10:01:37 +08:00
已经加入博客中试试好不好用
zjiecode
    115
zjiecode  
   2018-12-09 18:06:59 +08:00
力挺作者,这个太有情怀了,超级棒。
JackXing
    116
JackXing  
   2018-12-12 13:58:45 +08:00
支持
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2773 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 25ms · UTC 12:11 · PVG 20:11 · LAX 04:11 · JFK 07:11
Developed with CodeLauncher
♥ Do have faith in what you're doing.