AowerDmax / Simple-Interview-Audio-Processing

135 stars 18 forks source link

老哥这个只能采集语音,没有chatgpt回应怎么解决 #7

Open night-ssk opened 2 months ago

night-ssk commented 2 months ago
image
night-ssk commented 2 months ago

已经配置了R2和newapi

night-ssk commented 2 months ago
image

然后这个也没日志,麻烦老哥有空能帮忙解答一下了,谢谢

night-ssk commented 2 months ago

想请教一下大佬每次是不是都要用快捷键来生成输出,因为我的是mac我看好像还不支持我的mac快捷键

AowerDmax commented 2 months ago

是的,现在已经完全设置为快捷键调用了,是支持mac的快捷键的.

win里面的

<ctrl>对应 mac 里面的Control (⌃) <alt>对应 mac 里面的Option/Alt (⌥) <win>对应 mac 里面的Command (⌘)

{
  "shortcuts": {
    //mac control + optional + a .
    "algorithm": ["<ctrl>", "<alt>", "a"], //按下快捷键,截屏调用算法题回答的 prompt
    "personality": ["<ctrl>", "<alt>", "p"], //按下快捷键,截屏调用性格测评 的 prompt
    "general": ["<ctrl>", "<alt>", "g"], //通用问答
    "long_screenshot": ["<ctrl>", "<alt>", "l"], //长算法题
    "help": ["<ctrl>", "<alt>", "h"], //GPT快捷键调用,读取对话记录,之前的间隔调用删掉.
    "fix": ["<ctrl>", "<alt>", "f"] //代码修复
  },
  "save_dir": "./screenshots",
  "scroll_delay": 1.5,
  "scroll_amount": 17,
  "max_screenshots": 3
}

比如你觉得这个prompt写的不够好,你直接修对应文件名里面的内容就可以.

如果你觉得这个prompt的按键太少,你直接修改项目根目录下的config.json文件就可以.然后在prompt文件夹下新增和key名相同的md文件,并填入你想写的提示词.

比如在config.json里面添加"ocr": ["<ctrl>", "<alt>", "o"]
然后在prompt文件夹下新增文件ocr.md
使用`Control (⌃) ` + `Option/Alt (⌥)` + o 就可以使用,尽情enjoy~

你现在已经基本完成了,但是你现在做的是没有语音分离的

你需要设置BlackHole进行音频捕获

https://github.com/AowerDmax/Simple-Interview-Audio-Processing?tab=readme-ov-file#audio-configuration-on-macos-and-windows

注意在下载BlackHole的时候要选择16ch及以上.

AowerDmax commented 2 months ago

另外这个是支持多设备部署的. docker 的部分实际可以部署在任何可以和python 能通信的地方.

如果你都部署在本机上,也可以通过 关闭防火墙, 特定应用放行(mac) ,开放相应的端口(win和linux).让和本机连接的相同局域网下的任意终端设备查看interview dialog (web) 页面.

我已经对手机 平板 主机 做了对应的显示优化

night-ssk commented 2 months ago
image

现在最大的问题是会卡在这个界面很久才能进对话框,还没找到原因。(特别是今天很难进入对话框) 麻烦大佬帮我分析一下了。谢谢

night-ssk commented 2 months ago

想请教一下我只开放了服务端的10096、10097、8080、6379、7700给客户端对不,客户端是否需要开放端口给服务端吗?我的服务端是win下装的虚拟机,客户端是另外一台mac电脑。 我在mac上打开dialog网页没有显示完整,但是在window上可以显示完整。

night-ssk commented 2 months ago

今天测试还有一个问题,我在mac上不管用什么快捷键都是直接截图了

AowerDmax commented 2 months ago
help 
"help": ["<ctrl>", "<alt>", "h"],

只有这个不是截屏.这个是分析对话记录进行分析. 至于对话记录的长度在.env里面设置.

ROOKIE_DIALOG_LEN=2
CHATGPT_DIALOG_LEN=1
INTERVIEWER_DIALOG_LEN=3

这个说明发送给GPT的时候发送2个用户对话,一个GPT对话,三个系统内输入对话.

客户端不用开放任何端口,只要保证能和Redis通信即可,其他系统都是从Redis读取的数据.

很难进入对话框的原因是 websocket 建立连接的问题.

.env 文件中里面

WS_HOST=127.0.0.1
WS_PORT=8080

这个要设置成你访问的ip和端口号

注意在进行上面的操作之后需要重启docker 容器, 因为这些环境变量并不是给python你需要运行的项目用的.

你大概率使用了端口转发技术.

AowerDmax commented 2 months ago

根据你给的截图

你的.env 文件中

大概率应该要这么写

WS_HOST=116.57.83.135
WS_PORT=8080

初次之外, 你可以通过访问

http://116.57.83.135:7700

查看RAG知识库的索引效果.

RAG里面的内容通过修改data文件夹下的excel文件进行添加

当然上面的内容我是给提出issues提供的,如果其他人看到这些消息,记住把ip一定要修改为自己的.

night-ssk commented 2 months ago

python端是客户端,docker端是服务端。

然后服务端的env里面设置成: WS_HOST=116.57.83.135 WS_PORT=8080

客户端的env设置成: GO_APP_HOST=116.57.83.135 GO_APP_PORT=8080 WS_HOST=116.57.83.135 WS_PORT=8080

这样理解对嘛

AowerDmax commented 2 months ago

GO_APP_HOST=0.0.0.0

其他的应该没问题

night-ssk commented 2 months ago

这个是我客户端完整版: WS_HOST=CHATGPT_BASE_URL=https://api.smnet.asia/ AUTHORIZATION=sk-vN0w4VQ2E5elQi5M4364CcDe425b4e6dBe3f98C649C67eF2 MODEL=gemini-1.5-flash-latest SSL=0 MODE=2pass ROOKIE_HOST=116.57.83.135 ROOKIE_PORT=10097 INTERVIEWER_HOST=116.57.83.135 INTERVIEWER_PORT=10096 INTERVIEWER_WAIT_TIME=5000 ROOKIE_WAIT_TIME=5000 ROOKIE_DIALOG_LEN=1 CHATGPT_DIALOG_LEN=4 INTERVIEWER_DIALOG_LEN=5 REDIS_HOST=116.57.83.135 REDIS_PORT=6379 AGGREGATE_DEVICE_INDEX=9 MIC_DEVICE_INDEX=5 MEILISEARCH_HOST=116.57.83.135 MEILISEARCH_PORT=7700 MEILISEARCH_DEEP=1 RAG_ENABLED=True INTERVAL_TIME=500 DATA_QUEUE_KEYS=dialog_manager:chatgpt,dialog_manager:interviewer,dialog_manager:rookie GO_APP_HOST=0.0.0.0 GO_APP_PORT=8080 WS_HOST=116.57.83.135 WS_PORT=8080

这个是我服务端完整版: WS_HOST=CHATGPT_BASE_URL=https://api.smnet.asia/ AUTHORIZATION=sk-vN0w4VQ2E5elQi5M4364CcDe425b4e6dBe3f98C649C67eF2 MODEL=gemini-1.5-flash-latest SSL=0 SSL=0 MODE=2pass ROOKIE_HOST=116.57.83.135 ROOKIE_PORT=10097 INTERVIEWER_HOST=116.57.83.135 INTERVIEWER_PORT=10096 INTERVIEWER_WAIT_TIME=5000 ROOKIE_WAIT_TIME=5000 ROOKIE_DIALOG_LEN=1 CHATGPT_DIALOG_LEN=4 INTERVIEWER_DIALOG_LEN=5 REDIS_HOST=116.57.83.135 REDIS_PORT=6379 AGGREGATE_DEVICE_INDEX=8 MIC_DEVICE_INDEX=4 MEILISEARCH_HOST=116.57.83.135 MEILISEARCH_PORT=7700 MEILISEARCH_DEEP=1 RAG_ENABLED=True INTERVAL_TIME=500 DATA_QUEUE_KEYS=dialog_manager:chatgpt,dialog_manager:interviewer,dialog_manager:rookie GO_APP_HOST=0.0.0.0 GO_APP_PORT=8080 WS_HOST=116.57.83.135 WS_PORT=8080

服务端是windows里面的虚拟机,客户端是另外一个mac 现在有两个问题: 1、mac(只要不是windows服务端)打开116.57.83.135:8080显示不了dialog,但是windows打开116.57.83.135:8080可以正常显示。 2、我配置了newapi,但是gpt并没有回答。

image
AowerDmax commented 2 months ago

请注意你自己的信息保密.

这个项目只适配了openai格式的api

据我所知 gemini的格式为

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[{"text": "Write a story about a magic backpack."}]
        }]
       }' 2> /dev/null

Chatgptapi格式为:

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-4o",
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "Hello!"
      }
    ]
  }'

同时你需要这个模型支持多模态,才能使用截屏识别的功能,如果没有多模态,只能使用对话问答

多模态调用的格式为:

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-4o",
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": [
            {"type": "text", "text":"识别图片中的内容"},
            {"type": "image_url", "image_url": {"url": link}}
        ]
      }
    ]
  }'
AowerDmax commented 2 months ago

支持多模态的类openai格式的api基本上只有官转,或者官方.

你可以通过这个功能来测试是否为真正的chatgpt API官转.

大部分假冒的官转都是没有这个功能的.

当然你可以使用Backend-apiapi,适配这个图片上传的功能

night-ssk commented 2 months ago

好的好的感谢您的耐心解释。 这个是我在别人免费提供的newapi接口,所以是需要openai的官方api或者是官方api转的newapi或者oneapi才可以用对吧。😊

AowerDmax commented 2 months ago

如果你图简单,可以试试始皇的 oaipro. 一次调用大概三毛钱的样子

night-ssk commented 2 months ago

oaipro,一次要冲80.我试了一下通议千问的类openai接口也不行。 这个一定要openai吗?还是通义千问的类openai也可以用。我用curl 的方式测是可以回答的

AowerDmax commented 2 months ago

通义千问deepseek我都测试过可行.但是图片识别的肯定不行,只能使用h.

多模态目前国内厂商还没跟上

night-ssk commented 2 months ago

刚刚看到是我的env有问题,现在通义千问可以回答了。 但是目前还有最后一个问题python客户端链接docker服务端的时间好像挺久的。想问下佬在用的时候会有这种情况吗?大概要5-15分钟不等。有没有什么可以排查的方向

AowerDmax commented 2 months ago

python客户端与docker服务器没有直接连接,中间有个redis中间人.

你运行python后,直接说话是否能够检测语音输出?

此时打不开web页面,还是说web页面中不呈现相关的内容?

尝试刷新一下网页.

5-15分钟什么连接也都过期了,不可能这么久的.

我认为你已经解决了问题,并且成功部署了,只是你没有意识到.

night-ssk commented 2 months ago

真的很感谢能帮助我回答这么多,没有你的回答指导很多问题都还无法解决,目前已经基本走通了。 对于客户端连服务端的问题,服务端启动后很快可以打开8080web网页。 但是客户端连接服务端需要等很久才可以到语音识别检测的阶段。

AowerDmax commented 2 months ago

我下个版本给各个阶段打上LOG吧,我确实没有遇到你这个问题.目前确实不太容易定位

night-ssk commented 2 months ago

好的感谢。我也总结一下遇到的一些细节问题。 1、这两个命令第一次运行一定要进到docker里面放前台运行,第一次运行要下载很多模型,下完才可以用。

image

2、修改了env要docker-compose down,再docker- compose up -d,不然env不生效。

antsyan commented 2 months ago

只有输入没有回复,您是怎么解决的呢

antsyan commented 2 months ago

大佬如果方便可以建个群名

AowerDmax commented 2 months ago

现在修改成快捷键调用了,因为间隔时间过于死板,并且自己可以选择哪些问题调用,哪些问题不调用. 再经过考虑之后,完全放弃了自动调用.

night-ssk commented 2 months ago

except asyncio.TimeoutError 我在rookie.py打印发现会不断进入上面的代码中,但是我用wscat很容易可以连上10097端口

night-ssk commented 2 months ago

只有输入没有回复,您是怎么解决的呢

换了通义千问的api

antsyan commented 2 months ago

想问一下,Windows下快捷键是什么,就是通用回答。我是在终端使用了ctrl+alt+g没出来。使用官方的api

LZJ10086 commented 1 month ago

必须要有服务端吗?我部署了客户端,也没有gpt回复

AowerDmax commented 1 month ago

@LZJ10086 只部署客户端不启动docker容器肯定会报错的. 服务器 狭义上 指的是 我写的go程序(这个只负责web展示和excel处理上传知识库而已). 广义上还有redis、语音转文字服务端.

具体内容可以查看相应的安装文件. 功能是分割的, 实现特定功能需要的内容也都说明了.实现功能前面的是无论哪个功能都要安装(部署)的

LZJ10086 commented 1 month ago

@LZJ10086 只部署客户端不启动docker容器肯定会报错的. 服务器 狭义上 指的是 我写的go程序(这个只负责web展示和excel处理上传知识库而已). 广义上还有redis、语音转文字服务端.

具体内容可以查看相应的安装文件. 功能是分割的, 实现特定功能需要的内容也都说明了.实现功能前面的是无论哪个功能都要安装(部署)的

启动docker了,能进行语音识别,使用快捷键调用gpt,出现 Running ChatGPT workflow...就没反应了,我按照window的教程部署了Simple-Interview-Audio-Processing],window的dockers需要[Simple-Interview-Audio-Processing]和[websocket-redis]都要部署吗