Jacky Wei


About Jacky Wei

I am a programmer, welcome to my blog: http://rg4.net.

ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1007) 问题现象 语音合成功能突然不能用了,查看后台log发现TTS_BertVits2API的请求一直失败,报错为ssl握手失败。 我使用的是免费的原神角色语音合成,打开其网页地址:https://v2.genshinvoice.top ,发现在浏览器中就会报不安全证书的警告。 问题排查 加verify=False跳过证书校验:失败 考虑到目标网址的证书异常,我在请求中给加了个verify=False,再跑,错误依旧。 查看当前环境 降级urllib3到1.23: 搞定 问题解决。 屏蔽告警 由于https://v2.genshinvoice.top 的证书有问题,即使在浏览器上访问也会告警,用urllib3去请求同样会出现一个告警。 如果你觉得这个告警烦人,可以用这个方式屏蔽掉。

request报错:SSLError: [SSL: WRONG_VERSION_NUMBER]


一、前言 小落同学原先没有做多用户,想改版一下可以支持多用户,所以需要改造原来的websocket API接口目标示例的请求如下:ws://x.rg4.net/ws/b7e14e7c1a1d42019d866166c81119d1?llm=chatgpt&character_id=2&chatmode=text&token= OK,那让我们来试试。 二、让Django支持websocket 在 Django 中启用 WebSocket 通常需要借助第三方库,因为 Django 自身的框架并不直接支持WebSocket。一个流行的选择是使用 Django Channels,这是一个为 Django 提供异步能力的扩展,包括 WebSocket 支持。 以下是如何在 Django 项目中启用 WebSocket 的基本步骤: 1. 安装 Django Channels 2. 更新 Django 设置 在你的 Django 项目的 settings.py 文件中,你需要添加 Channels 到你的 INSTALLED_APPS 列表中,并设置 注意:’xiaoluo.asgi.application’ 应该替换为你的 Django 项目的实际名称和 ASGI 应用程序的路径。 3. 创建 ASGI 应用程序: […]

django如何启用websocket,并使用动态路由参数


关于letsencrypt 官网:https://letsencrypt.org文档:https://letsencrypt.org/zh-cn/docs/文档2:https://eff-certbot.readthedocs.io/en/latest/using.html#certbot-commands 安装certbot 获取证书 命令 中间需要你在你的域名解析里加一个类型为TXT的域名,域名的名字为:_acme-challenge,txt的值为certbot提供给你的一段字串。 设置成功后回车,certbot会自动校验,校验通过了会提示你,生成证书成功,并告知你证书保存的路径。 部署证书 如果你用了宝塔,那你可以将生成的证书内容填到宝塔的SSL配置那里。 以我申请到的证书及路径为例: 部署完成后,可以考虑让nginx重新加载一下 问题

用letsencrypt的certbot申请免费证书,并部署全流程



[TOC] 前言 由于买的这个阿里云ECS是最低配的(2核1G内存),小落同学的后台进程经常会被莫名奇妙的杀掉,因此拟给加个看门狗保护下。整个保护分成两部分:1)进程检测脚本:watchdog.sh2)将检测脚本加入crontab 具体步骤如下。 进程检测脚本:watchdog.sh 利用一个配置文件,将小落同学绑定的端口及进程启动脚本在配置文件里配置好。然后再用一个脚本去telnet这个端口,若telnet成功,说明进程还活着,否则就是进程没了,需调用启动脚本进行启动。 配置文件 小落同学总共有两个进程,分别是backend和frontend,各使用8000端口和3000端口。文件名:watchdog.list 脚本内容 文件名:watchdog.sh 将检测脚本加入crontab 查看下当前cronjob列表。 查看命令 结果 加入小落同学相关的进程监控脚本 用crontab -e编辑,并加入小落同学相关的进程监控脚本,并将其设置为每分钟都检测一下。 查看当前back-end进程情况 返回8000端口进程情况 手动杀进程,看看能不能恢复? 杀进程后,等一会儿再看看进程有没有重新启来? 其它 查看crond的日志 crond的日志默认应该是在/var/log/cron里若是进程没启动起来的话,可以看下crond的日志,看看可能是什么原因 项目运行环境切换 1)conda环境切换:由于我给小落同学后台项目专门搞了一个虚拟环境,手动启动的时候都是先手动conda activate xiaoluo来切换一个环境,然后再去执行启动小落同学,但这个在crontab里写起来比较麻烦,因此将相关的环境切换移到start_backend.sh,并在这个脚本里去启动小落同学后台。2)npm环境切换:小落同学的前台其实也是类似,小落同学的前台的npm版本也是一个比较比较老的版本(v16.14.2),启动前需要nvm use v16.14.2切换一下npm版本,相关的处理都不放到crontab里,而转移到一个专门的启动脚本:start_frontend.sh。

给小落同学后台加个进程保护


【Good ending】预约会议失败场景下的流程】 小落同学用例:创建一个助手虚拟人,让其可以帮你预约会议。 目标 如题,希望让小落同学虚拟人市场里创建出来的虚拟人可以支持预约会议功能。 创建虚拟人角色 考虑到之前用小落同学的虚拟客服、虚拟女友的角色的prompt偶发会对指令出现干扰,从而导致agent在选择tool时异常,我专门在小落同学的后台新增了一个独立的、助手的角色。进入小落同学的后台后,创建一个虚拟人,名字、性别、人物模型、声音随便选一个,重点是prompt。该角色我给写的prompt是: 启动虚拟人 创建好虚拟人后,可在虚拟人市场那里直接点击启动,跳转到相应的前台页面。 开始预约会议 输入指令 帮我预约一个今天晚上8点的项目会议,邀请Jacky和顾振华参加 请求 工具选择:正确 参数解析:时间和日期全错 将解析日期参数独立出一个tool,再来一遍 在MeetingScheduler这个tool里,我判断了一下日期格式是否正确,如果不对的话,再手动调用QueryDate这个tool去重新解析日期。QueryDate的入参为前面在MeetingScheduler这个tool返回的日期参数:今天晚上8点QueryDate这个 tool的 prompt我写的是: 解析日期请求 第一次解析日期响应1 LLM返回的第一次解析日期的响应如下: 很好,果然笨的可以。那好,既然你这么笨,这道题目哥让你做三遍。 发起第二次QueryDate请求,内容格式跟第一次保持不变。 第二次解析日期响应 LLM返回的第二次解析日期的响应如下: 笨!!但是我还没放弃对你的治疗。发起第三次QueryDate请求,内容格式跟第一次保持不变。 第三次解析日期响应 LLM返回的第三次解析日期的响应如下: 哈哈。虽然你很笨,但是多试几次,你还是有机会把题目做对了的。但是你特么滴能不能按我的要求输出内容?调整QueryDate的prompt,再给你一次机会。 第四次解析日期响应 LLM返回的第四次解析日期的响应如下: 666666 看来还是可以再继续调教调教的。 最终的预约会议结果 Action: MeetingSchedulerAction Input: (‘2024-5-20′, ’20:00’, ‘不循环’, ‘项目会议’, ‘Jacky,顾振华’)Observ[DEBUG][2024-05-20 19:36:31,715][MeetingScheduler.py:80] =====================param=(‘2024-5-20′, ’20:00’, ‘不循环’, ‘项目会议’, ‘Jacky,顾振华’)Observ, type=会议预约:111111111111 […]

小落同学用例:创建一个助手虚拟人,让其可以帮你预约会议


前言 由于用默认的langchain agent碰到各种action识别错误,action input解析错误的问题,听说这个langsmith可以让我调试、测试、评估和监控基于任何 LLM 框架构建的链和智能代理的全流程。特地来学习了解一下。 注册langsmith 官网地址:https://smith.langchain.com/看到可以直接用Discord、GitHub、Google账号登录(也可以用自己邮箱注册),于是直接用github账号注册登录。 获取API 登录进去后在Personal页的右上角有一个Create API Key,点击后可创建一个API KeyAPI Key分两种:Personal Access KeyService Key我各创建了一个:Personal Access Key: lsv2_pt_706834b28bf6477a9f69ab9b81021c77_cbd33ac54bServiceKey: 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 设置环境变量 Linux:export LANGCHAIN_TRACING_V2=trueexport LANGCHAIN_ENDPOINT=”https://api.smith.langchain.com“export LANGCHAIN_API_KEY=”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”export LANGCHAIN_PROJECT=”langchain_for_llm_application_development” Windows:setx LANGCHAIN_TRACING_V2 truesetx LANGCHAIN_ENDPOINT “https://api.smith.langchain.com“setx LANGCHAIN_API_KEY lsv2_pt_706834b28bf6477a9f69ab9b81021c77_cbd33ac54bsetx LANGCHAIN_PROJECT langchain_for_llm_application_development 其中:LANGCHAIN_TRACING_V2: 设置LangChain是否开启日志跟踪模式。LANGCHAIN_PROJECT: 跟踪项目的名称。如果LangSmith上还没有这个项目,会自动创建。如果不设置这个环境变量,会把相关信息写到default项目。LANGCHAIN_API_KEY: 你在前面申请生成的LangSmith的API key。 设置好环境变量就可以了,代码无需任何变动!完全没有侵入性的感觉真好。当然,如果要较真的话,引入LangChain的时候代码就已经侵入了,但是我们本来就要用LangChain,那就不用管这个了。 使用 初始化smith ”’pythondef initSmith(self):try:from dotenv import load_dotenvload_dotenv(find_dotenv()) ”’ […]

langsmith使用



langchain的tools经常会说:“提供的日程查询工具帮助较小,我将直接回答。” 问题现象 我加了好几个tools,希望可以在langchain的agent框架下实现一些自定义的功能,但是在实际运行过程中langchain的tools经常会说:“提供的日程查询工具帮助较小,我将直接回答。” 结论 问题分析定位的过程又臭又长,为省流直接上结论:修改调整你的prompt,以适配LLM(不同的LLM的结果不一样,如果想产品化你需要盯着一个LLM引擎自行调整prompt来适配)。 问题分析 原始请求: {‘method’: ‘post’, ‘url’: ‘/chat/completions’, ‘files’: None, ‘json_data’:{‘messages’:[{‘role’: ‘user’, ‘content’: ‘Answer the following questions as best you can.You have access to the following tools:\n\npython_executor: 此工具用于执行传入的 Python 代码片段,并返回执行结果\nScheduleAdder: 用于设置日程,使用的时候需要接受3个参数,第1个参数是时间,第2个参数是循环规则(如:\’1000100\’代表星期一和星期五循环,\’0000000\’代表不循环),第3个参数代表要执行的事项,如:(\’15:15\’, \’0000001\’, \’提醒主人叫咖啡\’)\nweather: 此工具用于获取天气预报信息,需传入英文的城市名,参数格式:Guangzhou\nCheckSensor: 此工具用于查询会议室内各种IoT设备在线状态、传感器数据、设备开关状态\nSwitch: 此工具用于控制空调、投影、窗帘、灯、终端、暖气、投屏器的开关,参数格式:(“空调”,”on”),返回True为成功\nKnowledge: 此工具用于查询XX视讯视频会议系统的专业知识,使用时请传入相关问题作为参数,例如:“XXX硬终端支持H.265+RTC的会议吗”\nScheduleDBQuery: 用于查询所有日程,返回的数据里包含3个参数:时间、循环规则(如:\’1000100\’代表星期一和星期五循环,\’0000000\’代表不循环)、执行的事项\nScheduleDBDelete: 用于删除某一个日程,接受任务id作为参数,如:2\nGetSwitchLog: 此工具用于查询会议室内的IoT设备开关当天的操作历史记录\ngetOnRunLinkage: 此工具用于查询会议室内的IoT设备当前在运行的联动,以及温度、湿度、烟感等的环境监控\nWebPageRetriever: 专门用于通过Bing搜索API快速检索和获取与特定查询词条相关的网页信息。使用 时请传入需要查询的关键词作为参数。\nWebPageScraper: 此工具用于获取网页内容,使用时请传入需要查询的网页地址作为参数,如:https://www.baidu.com/。\nKnowledgeBaseResponder: 此工具用于连接本地知识库获取问题答案,使用时请传入相关问题作为参数 ,例如:“草莓最适合的生长温度”\nMeetingScheduler: 用于预约会议,使用的时候需要接受4个参数,第1个参数是时间,第2个参数是循环规则(如:\’1000100\’代表星期一和星期五循环,\’0000000\’代表不循环),第3个参数代表要执行的事项,第4个参数代表需要参 […]

langchain的tools经常会说:“提供的日程查询工具帮助较小,我将直接回答。”


[TOC] 一、前言 1。我的Django APP(omserver)有在settings.py里启用csrf_token middleware 2。在我的所有form里都有加{% csrf_token %}标签代码里有两种方式的POST,1)有form: 直接将整个form serialize(),然后 ajax submit 2)没有form: 3。在开发环境跑所有功能都OK。 4。开发环境和部署环境的一个差别1)开发环境访问后台是直接连接后台的django地址:http://localhost:8000/omserver2)部署环境访问后台是跟前端共用了一个域名:https://x.rg4.net ,然后这个域名再通过nginx反向代码分别跳转到前台(http://localhost:3000)和后台(http://localhost:8000/omserver) 二、各种尝试 尝试1:怀疑是不是过nginx后,cookie丢失?nginx反向路由加一些头 结果:没用,403依旧。 尝试2:怀疑csrf token没传到django?在我的app里加一个 middleware,拦截所有的request,并将其内容打出来以确认 django有没有收到前端传过来的csrf token 1)先在我的app omserver下创建一个middleware.py,然后加入以下代码 2)将这个middleware加入到settings.py 结果:django有收到前端传过来的csrf token,但就是403 这里打印出来的csrfmiddlewaretoken值,与我在前面javascript ajax post时打印出来的值是一毛一样的,为什么报错? 尝试3:分析csrf.py代码,将校验过程打印出来 1)拿到检验错误原因为:{“detail”:”CSRF Failed: Origin checking failed – https://x.rg4.net does not match any trusted origins.”}2)重新修改settings.py,将前面禁用掉的csrf middleware重新打开 同时在settings.py里加入 这个时候报错变成了 注:中间有碰到一个新问题,刷新前端界面报错 […]

[未解决]将xiaoluo-3d部署到公网后,出现所有POST都报403错误


转自:https://zhuanlan.zhihu.com/p/628760014 1、标题生成 我想让你充当标题生成器。请以[文房四宝]为主题,[传承、匠心]为关键词,你将生成五个吸引人的标题。要求保持标题简洁,不超过[20]个字 2、文章续写 你是一位文案助理,以[星期日早上,我坐在床上读着《安徒生童话》中《卖火柴的小女孩》。]为开头,续写一篇小学生日记,要求表意清晰,主题鲜明,分段表述 3、文章开头 现在写出一篇文章的开头,文章主题为[如何看待中小学生沉迷网络游戏],要求文字简洁明了,具有吸引力,运用具体案例和数据 4、文章大纲 我希望你是一位文案助理,帮助我生成文章大纲,这篇大纲的主题是[人工智能发展史],要求逻辑清晰,分条表述 5、文章润色 我希望你是一位文章改写助手,我给出一段话,你对文本内容进行修改润色,以达到[更为简洁、有吸引力]的目标,要[用到成语和修辞手法]。文本内容为:[今天的天气真是好极了,我在上学路上看到了一只小猫在花丛里玩耍,它看起来非常开心。放学回家后,我向妈妈分享了这个有趣的经历。] 6、冷笑话 你是我的一位非常幽默的朋友,我现在心情不好,希望你能讲一个与[动物]有关的冷笑话,希望能够有吸引力,有想象力。 7、文章大纲 我希望你是一位文案助理,帮助我生成文章大纲,这篇大纲的主题是[人工智能发展史],要求逻辑清晰,分条表述 8、文章润色 我希望你是一位文章改写助手,我给出一段话,你对文本内容进行修改润色,以达到[更为简洁、有吸引力]的目标,要[用到成语和修辞手法]。文本内容为:[今天的天气真是好极了,我在上学路上看到了一只小猫在花丛里玩耍,它看起来非常开心。放学回家后,我向妈妈分享了这个有趣的经历。] 9、冷笑话 你是我的一位非常幽默的朋友,我现在心情不好,希望你能讲一个与[动物]有关的冷笑话,希望能够有吸引力,有想象力。 10、朋友圈文案 你是一位文案小助理,我需要你帮我写朋友圈文案,我的要求是[表达我外出游玩的好心情,我将会配一张日出的照片],50字左右,风格俏皮有趣 11、小红书文案 我希望你是一位文案助理,你将针对[保湿防晒霜]这一产品,写一篇小红书风格的种草文案,要求包含产品功效、特点以及使用体验 12、社交媒体 针对公司即将推出的[学习机新品],编辑一条微博文案,文字在[150字]之内,突出:[课程资源多、护眼、性价比高]的特点 13、策划方案 针对公司即将推出的[智能耳机产品],给出一个推广策划方案,并列出具体预算 14、用户调研 你现在是一位营销经理,针对公司的[保温杯]产品,写一份用户调研报告,分析这款产品的受众群体、他们的痛点及应采取什么营销策略 15、产品新闻稿 撰写一篇新闻稿,向[开发者]客户介绍我们的[键盘]产品,突出其[材质优良、触感好]的特点,并起一个有吸引力的标题 16、SWOT分析 针对[公司的翻译机]产品做一个SWOT分析,用中文表达 17、PPT大纲 制作一个[新媒体运营月度计划]为主题的PPT大纲,要求8页之内 18、课程设计 你现在是一位语文教师,准备[为学生讲述《静夜思》这首诗],为本次课程制定一个课程设计,要求注重师生之间的互动 19、写论文 写一篇以[学生心理发展]为主题的论文,要求有标题、内容摘要、关键词、正文、参考文献、注释等内容 20、写作文 我需要你写一篇小学生作文,300字左右,作文主题是[乌鸦喝水的故事],要求文字表达流畅,分段表述,有层次,有寓意。 21、学习技巧 你非常聪明,有很多学习技巧,请告诉我[5]个关于[学好高中物理]的学习技巧 22、学习计划 你是我的学习指导老师,我需要[通过英语四级考试],请为我制定一份详细的学习计划 23、阅读理解 你是我的语文家教,我将给到你一段文字[金色的霞光,犹如一只神奇的巨手,徐徐拉开了柔软的帷幕,整个大地豁然开朗了],请描述下所要表达的场景。 24、外语学习 我想让你扮演一个[英语]老师,我会用[英语]和你交流,你用[英语]回复我。现在我们开始练习 25、道歉邮件 […]

Chat GPT不知怎么问?102种行业的Prompt提示词大全来了




周末去看了一下视源股份的这个领效智会大模型,初步收集了一下情况,日后若有时间再来具体了解一下。 一、官网:https://www.maxhub.com/max_ai/ 二、赋了什么能? 跟所有人一样,希望可以将智能覆盖到视频会议的会前、会中、会后全流程,没看出来有什么新意。 三、对比分析 技术维度 1.功能 单纯从MaxHub的介绍来看,简单对比一下,咱们缺失了计划了5年、但一直没实施的智能运维关联功能,但是多IoT控制,但这是产品定位不同所致。 从网上可以搜到的领效智会大模型的相关介绍里,看不出来其后端的具体情况,但是我们在ASR之后做了许多的“后处理”工作,包括:会议摘要、会议总结、方言、会议关键字、纠错、标点、语气词过滤等等,并且都是独立于ASR引擎的,无论是用讯飞的引擎、阿里的引擎、思必驰的引擎,还是其他的,都适用。但是在MaxHub的这个领效智会大模型的介绍里看不出来他们的任何情况。 2.指标 说再多的功能,没有实际的体验都白扯。MaxHub宣称可以试用,但是上去看了一下,我不具备资格,XD试用(失败):本次试用活动适用于已购MAXHUB 会议平板用户【搭载Windows 模块的五、六代经典Pro、视讯系列、科技系列、未来款】请确认是否为以上用户 四、结语 由于公开的信息相当有限,并且无法获得内测资格,因此所有信息仅停留在表面。看看后面有没有机会来实际体验一下,重点的重点是:这,到底是一个大模型?还是一个ASR(附加一些其他的零零碎碎的智能功能)?这关乎路线。

简单了解视源股份领效智会大模型


文章来源:证券时报网 原文:https://finance.eastmoney.com/a/202310232878490116.html 10月23日,视源股份(002841)旗下品牌MAXHUB首发领效智会大模型内测版。据了解,该模型将率先搭载在会议平板、智能办公本等多个产品中,提供语音操控、发言实时转录、会议纪要智能提炼、待办自动生成等功能,贯穿会前、会中、会后全流程。首批用户可以前往MAXHUB公众号或官网申请免费试用,试用周期为开通之日起至2023年12月31日。   作为一款专注于会议场景的AI,MAXHUB在会议场景的经验积累,以及母公司视源股份在AI算法研究方面的技术沉淀,均奠定了领效智会大模型发展的基础。   2017年,MAXHUB国内首创会议平板新品类,定义书写、展示、协同三大功能,此后更是不断推陈出新,于今年5月发布三大空间数字化解决方案,将高效覆盖到组织的每一个角落。至今,MAXHUB的产品已覆盖50多万间会议室和超80%中国500强企业。   MAXHUB基于对会议真实痛点与用户真实需求的深度理解,以及在制造、新零售、金融、医疗等千行百业所积累的丰富的实践经验,为领效智会大模型在通用性和定制化的功能设计上,提供了极具价值的参考。MAXHUB领效智会大模型内测版充分融合多年来在会议场景的洞察和分析,打造可落地、懂会议的AI应用。   早在2014年,MAXHUB母公司视源股份便成立了专注于AI算法研究的团队。近十年的积累,也为大模型在算法能力的持续优化上提供技术基石。据悉,MAXHUB领效智会大模型内测版历经多月时间训练,以软硬件结合的方式,将AI赋能于会议全流程,为用户带来会前轻松准备、会中多人高效执行、会后智能回溯等全流程会议体验。   任何协作工具诞生的本质,都是为用户带来更高的工作效率和更好的使用感受。MAXHUB推出会议大模型的初心同样如此,通过将旗下产品与该大模型的深度结合,打造逻辑、生成和记忆等能力,为用户带来更加人性化和智能化的高效会议体验,提高会议决策效率以及组织生产力。目前,MAXHUB领效智会大模型内测版的功能还在持续完善,值得期待的是,MAXHUB未来将会议模式推向AI时代,通过Prompt开拓人机交互、各种协同想象成为现实的新时代。

视源股份:旗下MAXHUB品牌首发会议大模型内测版 探索智慧会议新未来



让我们来用小落同学试试:大语言模型可以给人力资源部门带来什么帮助 question:ChatGPT之类的大语言模型可以给人力资源部门带来什么帮助 小落同学:ChatGPT可以为人力资源部门带来以下一些好处: question:请用ChatGPT完成一个实际的案例,来帮忙人力资源部门实现自动化招聘流程? 小落同学:好的,我可以给您提供一个案例。假设一家企业需要招聘一名软件开发工程师,人力资源部门可以通过ChatGPT来实现自动化招聘流程。首先,人力资源部门可以在ChatGPT上发布招聘信息,包括职位描述、任职要求、薪资范围等。然后,应聘者可以通过ChatGPT提交简历,并通过文本输入或语音输入的方式回答一些问题,以证明他们是否符合职位要求。接下来,ChatGPT可以自动评估应聘者的答案,并根据其表现给出相应的评价。人力资源部门可以设置一定的阈值,以确定应聘者的面试资格。如果应聘者的评价超过阈值,则可以自动邀请其参加面试。如果应聘者的评价低于阈值,则可以自动拒绝其应聘。最后,如果应聘者通过了面试,人力资源部门可以通过ChatGPT向其发送录用通知,并自动为其办理入职手续。如果应聘者未通过面试,人力资源部门也可以通过ChatGPT向其发送拒录通知,并为其提供一些反馈意见。通过这种方式,人力资源部门可以大大减少招聘流程的时间和人力成本,同时也可以提高招聘效率和准确度。 question:请用随机生成20条员工的考勤记录,并用ChatGPT来对这些考勤记录进行分析,用于人力资源部门决策。 小落同学:以下是随机生成的20条员工考勤记录: 对于这些考勤记录,可以使用以下分析方法: 此外,还可以对员工的考勤记录进行更深入的分析,比如按部门、按岗位、按个人等进行分析,以便为人力资源决策提供更准确的依据。最后,建议将分析结果以图表的形式展示,以便更容易理解和决策。

prompt – ChatGPT之类的大语言模型可以给人力资源部门带来什么帮助