lobechat聊天机器人介绍与docker部署(有坑需注意)
1 lobechat介绍
官方介绍:LobeChat 是一个开源、高性能的聊天机器人框架。支持语音合成、多模态和可扩展插件系统。支持一键式免费部署私人ChatGPT/LLM 网络应用程序。
lobechat的github-lobe-chat🤖上有详细的文档介绍(中英文都有)并且有着discord社区,这个东西呢,就相当于部署自己的一个私人的chatgpt服务,那么重点是我为什么不直接用chatgpt而去选择部署使用lobechat呢,文档给出了下面的几个优点:
GPT 视觉认知
TTS & STT 语音会话
Text to Image 文生图
Function Calling 插件系统
助手市场
PWA 渐进式 Web 应用
移动设备适配
自定义主题
对我而言,有两个地方比较吸引我,第一个是它的插件系统,有着非常丰富的插件市场,对我来说,我装了一些学术与搜索相关的插件,日常使用还是挺方便的
当然吸引我的第二个点就是有超级多的预设助手,有各个方面的,能够大大减少我们想提示词等相关的难度
我装了下边的几个助手,这个地方的塔罗占卜师的助手还挺有意思的
当然,选择这个 ...
小米14购买使用体验
1-购买手机之前
1.1-预算与选择
小米14买了大概10几天了,用了这几天也简单聊聊我的使用感受,我在买手机的时候预算5k,这个价位的手机有如下几个,但是最终都没选而是选择了小米14:
小米14pro
荣耀magic6pro
vivo x100 pro
oppo find x7
苹果 15
1.2-手机权衡
当然还其实有魅族什么的,但是不大敢买,我内心最认可的两个牌子是华为和苹果,口碑、质量以及稳定性都比较好,但是好点的手机价格也相当较高,基本不是很考虑了。
内心的第二梯队就是小米、vivio、oppo和荣耀,因为我上一部手机是红米的k40 gaming,用了不到三年就硬件出现问题,去售后维修,工作人员说他们那没法修,可能是CPU问题,只能返厂,所以我对小米的品控和质量是有所怀疑的
而且小米的2000-3000挡手机用1年以上会有一定的卡顿,k40g就是一个例子,虽然整体还算ok但是无论打游戏还是日常使用,时不时的卡是家常便饭,小米的系统大家都了解,就是bug比较多~
但是为什么小米还是我心里的第二梯队了,三个原因:
一是因为小米的硬件性价比还是可以的;
二是因为这两年相机拍照 ...
期待这么久,Obsidian表格功能终于更新,类似notion的编辑体验!
今天打开obsidian发现版本更新,现在是v1.5.3,看了一下官网更新日志,发现表格编辑功能终于更新!!!
以前 obsidian最让人诟病的就是表格功能,对于一个可以 all in one 的笔记软件来说,表格编辑功能还是基本纯原生的 markdown 表格的写法,基本是让人难以忍受就的。
当然 obsidian 社区插件生态很丰富,很多大神也开发了一些对应的表格增强的插件,我开始也尝试过:
插件1:advanced table
插件2:markdown table editor
对于插件1来说,只是对于原生 markdown 表格的轻微增强版,并没有真正的方便普通人编辑,我用的时候,超过3行3列的表会直接放弃用obsidian。并且obidian的表格展示效果并不友好。
在逛 obsidian 社区的时候,偶尔发现了插件2,装上之后有点惊叹,表格功能竟然能用了,如下图所示,在编写文章有插入表格需求时点击左侧边栏图标,会自动将页面分为两列,表格可以自定义几行几列,增删查改功能几乎可以方便轻度的使用
但是呢,在大表格编辑以及展示,还有部分微调,也不是很灵活,只能说可以使用,没 ...
2023-9-17-第35周 周记
第一周周记,这是一次学习和坚持的尝试,差不多有三个核心点吧,整体思路和形式来自《认知觉醒》和 印记。
用每天记录的形式代替每天的打卡,比起打卡模式,记录没有打卡的任务压力,可以将注意力集中到活动本身,而不是完成任务上,
对每天设置的小任务来说不设置上线,设置下限,我希望的是完成目标毫无负担,愿意顺着惯性继续学下去,多学一点都是额外的收获,心态完全不同,身心容易沉浸,不会顾虑什么时候才能完成任务
发布社交媒体账号,可以自我push~
目前先采用这种形式吧,以后根据实际情况在修改细节部分
2023-09-14-周四
一天安排
[x] 看一集生活大爆炸 看了两集
[x] 两道题 边界处理细节问题
[x] 10个单词 30
[x] 自我拯救系列简单规划
[ ] 仿真交叉对比 (不成功~)
[x] 投递1~2个简历 北京 - 济南
memo
我觉得能够长期坚持一些事情有两个核心点:
一是要做适当的规划,一个比较合适的方式是将代办事项写在纸上或者记在软件上,有个著名的方法叫做GTD , 这个方法规划任务分为五个步骤:收集、厘清、整理、检查、执行,我大概尝试了一下,并不是很适合我, ...
Linux常见指令和权限理解
常见指令
目录
ls/cd/pwd
对文件操作
查看文件内容
查找
打包压缩
其他一些命令
whoami/clear/rmdir/date/cal/alias/bc/uname
基础知识
目录
linux用户相关
路径认识
热键
重定向
shell运行原理
权限
ACM时间
ACM时间:stat + 文件名 查看文件状态
Access:文件最后访问时间
Modify:文件最后修改时间
Change:对文件最后的Inode信息最后修改时间
个人AI笔记知识库-钉钉个人版(内测),确定不来试试么?
今天打开阿里云盘突然提示钉钉个人内测版本推送,打开一看,好家伙,钉钉什么时候搞的这么酷了!大体一看类似于notion的页面,结合AI功能,直接有点牛波一了,如果你是笔记+AI重度用户,绝对值的一试。
我个人是有记笔记的习惯的,也尝试过很多不同的笔记软件,从最开始的typora到语雀,再到现在的obsidian,也算一个重度的markdown笔记用户了。
为什么突然会说这个钉钉个人版本呢,钉钉个人版本除了基础的各种笔记功能之外,主要还集成了AI创作服务,关键是现在是免费的(包括文生文、文生图、角色对话、以及AI创作服务)
我个人是AI的重度用户(ChatGPT、Cloude)基本天天用,目前钉钉的AI是阿里的大模型:通义千问、通义万相,分别负责文本生成和图片生成。
下面是普通文档,按空格建就能调出AI写作。下边图片的文字部分就是由钉钉AI完成。
当然钉钉这种写程序也是OK的,最左侧这一栏,第二个就是AI创作的选项,贾维斯基于通义千问,可以写文档,写代码,并且钉钉个人版本提供了很多预设的指令。
缪斯基于通义万象,就类似于midjourney,通过文本描述,它能生成对应的图片。
...
ctemplate,安装以及出现报错处理方式
简介
Google CTemplate是一个开源的C++模板引擎,可以生成html文件,今天安装出现一些问题,在此将遇到的问题以及解决方式记录下来# 简介
安装
git clone https://github.com/OlafvdSpek/ctemplate.git
cd ctemplate
./autogen.sh
./configure
make
sudo make install(注意带sudo)
出现问题1
安装ctemplate出现问题 autoreconf: command not found
解决方式:
运行:sudo yum install -y autoconf automake libtool
出现问题2
编写测试程序运行遇到报错:
./mytest: error while loading shared libraries: libctemplate.so.3: cannot open shared object file: No such file or directory
解决方式:
运行:export LD\_LIBRARY\_PATH=$LD\_L ...
4、负载均衡式在线OJ-编译运行(网络)
httplib下载
cpp-httplib-v0.7.15下载
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364#include "compile_run.hpp"#include "../common/httplib.h"using namespace httplib;using namespace ns_compile_and_run;//编译服务随时可能被多个人请求,必须保证传递上来的code,形成源文件名称的时候,要具有////唯一性,要不然多个用户之间会互相影响//int main()//{// //提供的编译服务,打包形成一个网络服务// //cpp-httplib// // in_json: {"code": "#include...", "input&quo ...
4、负载均衡式在线OJ-编译运行
该模块为编译运行功能,该模块需要使用json库,首先安装json,作用是将结构化的数据转化为字符串,做序列化和反序列化工作
命令:sudo yum install jsoncpp-devel
整体逻辑
Start函数
1static void Start(const std::string &in_json, std::string *out_json){}
Start函数参数
start函数的两个参数
in_json: {“code”: “#include …”, “input”: “”, “cpu_limit”: 1, “mem_limit”:10240}
out_json: {“status”:0, “reason”:“”, “stdout”:“”, “stderr”:“”}
in_json字符串中的内容
code: 用户提交的代码
input: 用户给自己提交的代码对应的输入,暂不做处理
cpu_limit: 时间要求
mem_limit: 空间要求
out_json字符串中的内容
status: 状态码 (必填)
rea ...
3、负载均衡式在线OJ-运行模块
运行模块
运行模块作用是:执行编译模块编译好的可执行程序,我们希望,输出、输出、错误等信息能写入到文件中。Run模块只关心运行,不关注结果的正确与否,结果正确与否靠测试用例判断
运行逻辑
这里需要重定向工作
标准输入
标准输出
标准错误
运行服务大致过程类似编译:
创建子进程
子进程通过execl执行编译好的可执行程序
那么这里会有两个问题
编译的代码可能是死循环或者恶意代码
运行出错如何知道是哪种错误
问题1可以通过资源限制来解决,通过限制运行时间,和申请内存上限等方式可以解决
问题2解决方式:
首先设计运行类,类中提供静态方法Run,该函数通过文件名可以自动拼接路径,然后再执行对应逻辑,返回值可以代表程序运行时的各种错误,比如我们规定:
返回值 > 0: 程序异常了,退出时收到了信号,返回值就是对应的信号编号
返回值 == 0: 正常运行完毕的,结果保存到了对应的临时文件中
返回值 < 0: 内部错误
具体代码
1234567891011121314151617181920212223242526272829303132333435363738394 ...