-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[求助] 替代LLM后如何编译 #14
Comments
过年好 🎉 问题1:目前音箱上的代码确实就是只请求的 app.py 的 Line 51 in 81a7372
音箱请求代码: open-lx01/src/apps/aivs-monitor/main.c Line 309 in 81a7372
需要修改一下请求的目标服务器和端口,改这个默认值就可以: open-lx01/src/apps/aivs-monitor/main.c Line 17 in 81a7372
改成 python app.py serve 的 ip+端口
当然也支持配置(不修改代码),具体逻辑参考 open-lx01/src/apps/aivs-monitor/main.c Lines 179 to 200 in 81a7372
问题2:固件编译分两部分
执行完之后在 pack.sh 那个目录就有一个 rootfs.img,刷进去就可以了 (凭记忆写的这些,遇到那里走不通的话随时留言 |
(折腾过程如果能总结些文档和截图提个PR就更好了,(还有 |
谢谢大神回复。 |
编译是成功了,编译中的一些问题:
我把src/scripts/config.mk中的BUILD_IMAGE ?= lx01:latest改为BUILD_IMAGE ?= jialeicui/lx01-build:latest
但是没有回应,我想可能是: 16 const char *instruction_json_path = "/tmp/mico_aivs_lab/instruction.log"; 音箱可以唤醒,没有其他回应。 打扰了,大佬有空再回复。再次祝您新年快乐。 |
您ssh或者串口登录音箱看 aivs-monitor 进程在不在? |
16 const char *instruction_json_path = "/tmp/mico_aivs_lab/instruction.log"; aivs-monitor 进程在 “url写到/message那一级”。好的,我找一下。 |
instruction.log是音箱自带程序生成的, |
然后再 |
Lines 50 to 77 in 132dc68
改成类似 @app.post("/message")
async def message(body: MicoMessage) -> MessageResponse:
logger.info(f"received text: {text}")
text = '测试应答'
logger.info(f"response text: {text}")
return MessageResponse(code=0, data=MessageResponseData(action="tts", tts=text)) |
感谢大佬不厌其烦地指导。 我的,看到了。原来重启后要对话才会生成。。 app.py绑定的端口: 我用 但还是没有回应,我想和没有识别到有关。明天再试试 /etc/init.d/aivs_monitor stop 把自定义的程序停掉,小爱音箱能正常应答 /etc/init.d/aivs_monitor start 没有回应 |
instruction.log 里全是点可能是因为终端软件配置的问题, 我没遇到过这个问题,所以暂时不清楚应该怎么搞, 先要看内容可以先 scp 出来在电脑上看 default_server_url 需要配置成您启动 关于代码版本的问题, 您可以优先使用打了tag的版本, 就是右边 Releases 里的版本, main 分支我一直在推新功能, 目前还没精力保证任何一个 commit 都能完全正常工作, 注意是 aivs-monitor 和 server 都用同一个版本. 用git的话, 就是 git checkout v0.1 切换到这个 tag |
好的,收到,感谢您这么详细的反馈,回老家没有设备可以测试,等有设备了我复现一下,有进展我在这里更新 |
看了log, 发现curl_easy_perform() failed: Error ps: 音箱闲鱼买的,自己没有绑定帐号过。手动连接的wifi ctrl_interface=/var/run/wpa_supplicant network={ |
如果您配置的server url是用的IP地址, 那理论上和 DNS 没有关系, 涉及不到域名->IP的转换 |
server端没有报错,curl过去是可以的
} 输出如下: curl_easy_perform() failed: Error ubus output: "code": 0, ubus output: "info": "{ "status": 0, "volume": 64, "loop_type": 1 }" ubus output: } ubus output: { ubus output: "code": 0, ubus output: "info": "{ "status": 0, "volume": 64, "loop_type": 1 }" ubus output: } ubus output: { ubus output: "code": 0, ubus output: "info": "{ "status": 1, "volume": 64, "loop_type": 1 }" |
加了这个函数,今天都还没连上(超过1个小时)。要不我刷回前天的rootfs.img看看 |
日志我还没特殊处理过, 我调试的时候是这么调试的, 您可以参考:
程序的所有标准输出都可以看到了 另, 您遇到curl失败是音箱重启还是 aivs-monitor 重启? 如果是音箱重启才能遇到, 调试的话可以把自动启动服务的 binary 指向 您手动scp 的 /data/xxx/aivs-monitor, 然后就不用每次刷整个固件了 启动服务脚本在
|
另外可以参考pack.sh 脚本, 手动 unsquarsh rootfs.img, 修改完之后再手动把 rootfs 打包一个新的来搞, 不用每次跑全流程 |
好的,我看看。谢谢“遇到curl失败是音箱重启还是 aivs-monitor 重启?” 至于连不上服务器,我是一直开机等。 |
尝试了音箱上 scp 程序到 /data 或者 /tmp, 然后手动执行这个程序 |
我看了下音箱里的 libcur 是4.5.0, repo里使用的是 4.8.0, 版本有些差别, 当时我随便搞了一个弄进去发现可以跑就没细调了.
如果报错还是这样, 应该和libcurl没有啥关系 |
您说的对, 是 如果您想继续定位, 可以
或者试试 v0.1 版本的代码(aivs-monitor 和 server), 那个代码应该是没问题, 我有设备了再修 main 分支的问题 |
谢谢大佬。把命令放最后就没有问题了,原始应答也禁用了。 |
好的, 没问题就好, 我后面修改下 我不会刷 kernel, 这个操作起来有些复杂, 您可以参考 https://www.bilibili.com/read/cv17374238 看看, 刷之前记得备份 kernel 我理解刷 kernel 可能需要提取设备树之类的信息, 让所有设备都能正常跑 (除非是想当一个开发服务器), 从另外一个角度, 我目前没有看到刷 kernel 带来的收益, 除非glibc不兼容, 或者要用新版本 kernel 的一些特性 xiaoai-patch 应该是不需要刷 kernel 的, 我 fork 过这个 repo, 改了些东西, 刷rootfs之后也能如预期看到相应的bin和service, 您感兴趣可以参考: https://github.com/jialeicui/lx01 注意 xiaoai-patch 这个 repo 的目的是完全跑自己的服务, 是我这个 repo 阶段三的形态, 您可以认为刷这个 repo 进去之后小爱音箱是无法实现唤醒和应答的, 您需要自己设计音箱的整个工作流程 |
哦,今天我也是找不到什么问题就想试试那边的curl版本看看。原来不用那么复杂就可以试了,哈哈 |
祝大佬节日快乐。
我的想法是做一个完全本地化的智能音箱,llm我了解不多,看到的目前对小白最友好的大概是Mozilla-Ocho /
llamafile 了,参照代码改了src/server/llm/copilot.py,
`
from openai import OpenAI
class Llamafile:
"""Llamafile API"""
if name == "main":
prompt = """
You are ChatGPT, an AI assistant. Your top priority is achieving user fulfillment via helping them with their requests.
"""
llamafile = Llamafile(prompt=prompt)
print(llamafile.chat("告诉我一些有趣的事情"))
`
代码在本机里面运行可以。
请大佬指教。
The text was updated successfully, but these errors were encountered: