V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iorilu
V2EX  ›  程序员

搞了个方便上班看股票的微信机器人, 股小天

  •  1
     
  •   iorilu · 2019-04-22 11:14:54 +08:00 · 6096 次点击
    这是一个创建于 1824 天前的主题,其中的信息可能已经有所发展或是发生改变。

    系统介绍

    股小天系统使用了最先进的自然语言理解和机器学习结合, 提供基于聊天的接口, 用户只需要使用自然语言说出想要查询的信息, 机器人助手会进行自动分析, 并且提供相应的信息.

    系统基本原理

    模型会分析用户的一句话, 并试图判断这句话的意图, 并且提取相应的关键字

    例子:

    用户输入: 今天长城汽车如何

    意图判断: 查询股票 关键字: 今天(日期) , 长城汽车(个股名称) 模型确定意图后, 并且得到足够实现意图的信息将调取相应的信息并返回

    如果模型没有得到足够的信息, 会自动询问用户, 并将流程继续下去

    开始使用 在聊天界面中说出你想要查询的信息

    例子:
    
    今天大盘如何
    查下中信证券
    今天 600050 如何
    我想查下 dfcf
    机器人助手就会回复相应的大盘以及个股信息
    

    gxt

    股小天机器人 www.guxiaotian.com
    qq 群: 808755643
    微信公众号: 股小天机器人
    关注直接使用
    
    39 条回复    2020-04-15 10:36:41 +08:00
    MES
        1
    MES  
       2019-04-22 11:39:12 +08:00
    web 接口吗?
    iorilu
        2
    iorilu  
    OP
       2019-04-22 11:41:22 +08:00
    @MES 目前是 微信公众号和 web app 使用

    你是说开放接口吗, 目前还没有开放接口
    xyqhkr
        3
    xyqhkr  
       2019-04-22 11:50:18 +08:00
    百度首页支持自定义添加 [我的股票] ,打开新窗口的时候,瞄一眼就可以了
    ![]( https://i.bmp.ovh/imgs/2019/04/328bdb0174878384.png)
    iorilu
        4
    iorilu  
    OP
       2019-04-22 11:52:56 +08:00
    @xyqhkr 我这个当然不光是查股票, 后面会实现更多的玩法哦

    比如比较股票, 过滤选股等
    iorilu
        5
    iorilu  
    OP
       2019-04-22 12:03:40 +08:00
    提下技术栈

    后台为 python 开发 restful 接口
    语言模型为 rasa+tensorflow
    前台为 react

    前后台分离, 使用 jwt 认证

    有兴趣也可以讨论技术
    malagebidi
        6
    malagebidi  
       2019-04-22 12:10:47 +08:00
    今日大盘如何?目前已跌 1.39%。
    chaogeonly
        7
    chaogeonly  
       2019-04-22 13:22:14 +08:00
    @iorilu 股票数据从哪里来的
    dartabe
        8
    dartabe  
       2019-04-22 13:31:06 +08:00
    挺有想法的 受到了启发
    Plsea
        9
    Plsea  
       2019-04-22 13:32:47 +08:00
    已关注
    leoninmin
        10
    leoninmin  
       2019-04-22 13:52:51 +08:00
    [腾讯微证劵] 难道不能满足你的需求吗?
    kr380709959
        11
    kr380709959  
       2019-04-22 14:28:45 +08:00
    你们这些人提供其他看股票的方法真的是 too young。难道仅仅只能查股票吗?如果自然语言处理的好,那是不是可以拿来查比特币?查天气?查服务器状态?每日新闻日报?再进一步,是不是可以作为一个训练集,成为一个个人小助手?毕竟微信的打开频次保证了阅读信息的效率
    Karpov
        12
    Karpov  
       2019-04-22 15:29:01 +08:00
    开个源学习一下呗
    FreshOldMan
        13
    FreshOldMan  
       2019-04-22 15:30:20 +08:00
    你的接口哪来的,买的 ipad 协议还是 itchat 呀
    Sweden
        14
    Sweden  
       2019-04-22 15:32:33 +08:00 via Android
    开个源学习一下呗
    iorilu
        15
    iorilu  
    OP
       2019-04-22 16:19:11 +08:00
    @FreshOldMan 没看懂, 啥叫 ipad 协议

    微信相关用的是 python 的 wechatpy 包
    iorilu
        16
    iorilu  
    OP
       2019-04-22 16:23:49 +08:00
    @Karpov 自然语言学习目前都在摸索阶段, 我也在学习, 这个也么啥好开源的, 主要和业务有关

    单纯想了解自然语言模型的, 可以查看 https://rasa.com/docs/ , rasa 应该是目前这块公认做的比较好的
    sznewbee096
        17
    sznewbee096  
       2019-04-22 17:02:00 +08:00
    如果微信小程序有的话,果断用起来
    iorilu
        18
    iorilu  
    OP
       2019-04-22 17:21:58 +08:00
    @sznewbee096 公众号下面菜单, 点击直达 app , 有 web app, 功能更强大

    以后新功能主要放在 web app 的

    小程序可能局限比较大
    AngryPanda
        19
    AngryPanda  
       2019-04-22 17:23:33 +08:00
    “处理中,请稍后”这个是废话,建议删除。
    iorilu
        20
    iorilu  
    OP
       2019-04-22 17:26:01 +08:00
    @AngryPanda 这个是考虑到微信消息是异步的, 具体处理时间不固定, 为了让用户知道起码消息是发送成功的, 所以先返回一个提示消息

    web app 没有提示的
    AngryPanda
        21
    AngryPanda  
       2019-04-22 17:36:03 +08:00
    郁闷我的票评级是清仓
    iorilu
        22
    iorilu  
    OP
       2019-04-22 17:39:04 +08:00
    @AngryPanda 声明下, 这些股票评级打分都是本人根据一些模型计算

    不作为操作依据, 并没有经过详细测试验证, 仅供参考

    不过模型肯定会一直改进的, 我自己炒股也要看这个
    NoKey
        23
    NoKey  
       2019-04-22 17:50:34 +08:00
    感觉很卡啊。。。
    xyqhkr
        24
    xyqhkr  
       2019-04-22 17:54:20 +08:00
    @iorilu 恩,就是提供不同的方法。想自己搞也非常好,我也喜欢自己折腾这些。。
    iorilu
        25
    iorilu  
    OP
       2019-04-22 17:56:47 +08:00
    @NoKey 微信卡还是 web app

    如果希望效率高点, 最好使用 web app

    微信消息来回转了好几次, 是要效率低点

    不过目前系统刚上, 还用优化空间
    NoKey
        26
    NoKey  
       2019-04-22 18:01:06 +08:00
    这个还需要进步啊。。。奥瑞德我已经被套进去了
    你这个反馈回来的风险 较低。。。
    janus77
        27
    janus77  
       2019-04-22 18:07:25 +08:00
    TG 机器人估计有成熟的了
    iorilu
        28
    iorilu  
    OP
       2019-04-22 19:18:13 +08:00
    @kr380709959 是的, 基于自然语言理解以后可能是个热点, 其实现在很多人在研究, 但是还是在初级阶段
    但可以肯定, 用途非常广

    其实最佳的接口就是自然语言, 你说需要的, 机器人做所以事情就完了
    yuezhimsolo
        29
    yuezhimsolo  
       2019-04-22 19:31:34 +08:00
    楼主,你的股票数据买淘宝的历史数据,然后最新数据是爬虫来的吗?
    iorilu
        30
    iorilu  
    OP
       2019-04-22 21:19:31 +08:00
    @yuezhimsolo 历史数据有很多地方可以拿到, 实时的确实是爬来的
    WhoCanBeRich
        31
    WhoCanBeRich  
       2019-04-22 21:38:35 +08:00
    很赞!想问下楼主实时数据是哪个网站爬下来的呢
    iorilu
        32
    iorilu  
    OP
       2019-04-22 22:56:51 +08:00
    @WhoCanBeRich 网上用的最多的是新浪数据, 你有兴趣可以查查
    leon2013
        33
    leon2013  
       2019-04-23 09:16:22 +08:00
    关注下,感觉不错
    iorilu
        34
    iorilu  
    OP
       2019-04-23 11:25:31 +08:00
    我看了下后台, 很多人直接发一个股票名

    说明下, 这系统并不是一个简单的查询系统, 要让模型识别出正确的意图, 光一个股票名是不够的

    目前因为意图比较少, 可能还可以用下

    不保证以后这种方式还可以用

    所以最好还是发个完整句子

    比如
    查下 xx
    查询 xx
    查看 xx
    等等
    fqlion
        35
    fqlion  
       2019-04-23 12:52:32 +08:00
    @iorilu 这个异步消息之前研究过,如何才能主动推送消息给用户呢,是否需要公众号认证
    iorilu
        36
    iorilu  
    OP
       2019-04-23 14:42:36 +08:00
    @fqlion 公众号本来就有认证的啊, 不是随便申请的, 想试试可以申请个测试号玩玩
    fqlion
        37
    fqlion  
       2019-04-23 15:35:09 +08:00
    @iorilu 请教下,异步任务完成后怎么实现主动推送消息给用户呢,微信接口 5s 就超时了
    iorilu
        38
    iorilu  
    OP
       2019-04-23 17:27:38 +08:00
    @fqlion 所以我分两次发送, 第一次回复一个“处理中, 请稍后”, 这个是同步消息, 微信服务器 post 到我的服务器时候直接返回

    然后把消息包装好后发到后台处理, 后台是个队列服务器, 一个一个消息处理, 处理时只要有用户 openid 就可以主动发消息给用户
    qeeainburg
        39
    qeeainburg  
       2020-04-15 10:36:41 +08:00
    +1 数据量太小了,完全不适合用 tensorflow 啊。。。。上面的能在 github 上建一一起玩玩不???
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2857 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 11:19 · PVG 19:19 · LAX 04:19 · JFK 07:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.