V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
zhangfuguan
V2EX  ›  Go 编程语言

ai 对话内容如何持久化

  •  
  •   zhangfuguan · 4 天前 · 1713 次点击

    我们现在需要保留 ai 对话内容,我原本想的是直接保存早 oss 上,每次客户端直接从 oss 临时链接下载。但是频繁写入文件和刷新 cdn 会有性能瓶颈,大佬么有啥好方案吗?

    如果直接保存在 mysql ,我担心聊天内容太多,网关流量扛不住

    17 条回复    2025-03-29 23:19:44 +08:00
    shellus
        1
    shellus  
       4 天前
    https://s3.bmp.ovh/imgs/2025/03/26/8563a5c7cbd7f437.png

    我不知道你的并发量多大 oss 都扛不住
    shellus
        2
    shellus  
       4 天前
    ![]( https://s3.bmp.ovh/imgs/2025/03/26/8563a5c7cbd7f437.png)

    我不知道你的并发量多大 oss 都扛不住
    shellus
        3
    shellus  
       4 天前
    ![]( https://s3.bmp.ovh/imgs/2025/03/26/8563a5c7cbd7f437.png)
    我不知道你的并发量多大 oss 都扛不住
    shellus
        4
    shellus  
       4 天前   ❤️ 1
    ![]( https://imgur.com/aiQ7XXI)

    我不知道这个 V2EX 发个图片为什么这么难
    shellus
        5
    shellus  
       4 天前
    https://imgur.com/aiQ7XXI

    我不知道这个 V2EX 发个图片为什么这么难
    fanxinxiaozhan
        6
    fanxinxiaozhan  
       4 天前 via Android
    找个带聊天记录的 ui 然后接 api 不就能自动保存记录了,例如 openwebui
    cnbatch
        7
    cnbatch  
       4 天前
    cnbatch
        8
    cnbatch  
       4 天前
    @shellus 做法如下:
    https : // i.imgur.com / aiQ7XXI.png
    去掉空格
    zsh2517
        9
    zsh2517  
       4 天前
    @shellus V2EX 测试沙盒 https://v2ex.com/go/sandbox ,我之前测试的链接 https://v2ex.com/t/1063562?p=1

    好像是限定的几个白名单的站点才允许加载图片。而且 imgur 默认给的链接还不能用

    按照你的那个,用 https://i 。imgur 。com/aiQ7XXI 。png (为了防止被转换成图片,把句号换成点)

    可以开 F12 ,看别人图片链接长啥样
    weenhall5
        10
    weenhall5  
       3 天前
    存 es 呢
    crackidz
        11
    crackidz  
       3 天前
    存在 MySQL 中没有什么太大问题
    一般情况下你也无需加载所有的聊天内容,当然这个和业务形态也会有关系。网关不卡,我也见过客户端会卡的案例
    konakona
        12
    konakona  
       3 天前
    存入数据库的想法是对的,只是不一定需要关系型数据库( Mysql ),还有性能更好更适合文档型的数据库:mangoDb 这些。
    liu731
        13
    liu731  
       3 天前
    性能品鉴不用担心(你真有那么大的并发吗?),使用 AI 总结更加高效。
    kuooyoung
        14
    kuooyoung  
       3 天前
    @shellus #3 应该是频繁写入和刷新 CDN 有性能问题
    sunnysab
        15
    sunnysab  
       3 天前
    @zsh2517 #9 第三方的图片链接也可以,见我之前发过的帖子(好吧,域名证书过期了,我晚点更新)
    shellus
        16
    shellus  
       1 天前
    1. 聊天记录每次变动,属于动态内容,CDN 的缓存失效,但是网络加速效果还是有的。
    2. CDN 不会有写入并发量的瓶颈,人家本身就是对象存储级别的写入性能。

    建议:将历史聊天记录以块形式储存为静态不变的内容,例如聊天记录存为 index.json 往里面放第 201 条记录时候,即将 1-100 条内容另存为 page1.json, 然后 index.json 的第一行指向 page1.json ,后面是 101-201 行聊天记录。
    这样就实现了仍然能利用到 CDN 的缓存特性,并不会频繁刷新缓存。

    再下一步应该是读写分离,读总是从 CDN 读,但是写可以先缓存本地或者其他储存,有变化则定时同步到 OSS ,减少 OSS 写入。

    但是总的来说,建议别折腾,CDN+OSS 没有你想的那么脆弱,除非你进行了并发测试证明性能真的达不到你的要求(可能性很低)
    zhangfuguan
        17
    zhangfuguan  
    OP
       1 天前
    @shellus #16 嗯嗯 ,多谢老哥指点
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   864 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:11 · PVG 05:11 · LAX 14:11 · JFK 17:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.