chatbox
chatbox copied to clipboard
[Feature]麻烦增加软件本身的代理设置,用全局有时候比较麻烦。谢谢
麻烦增加软件本身的代理设置,用全局有时候比较麻烦。谢谢
不需要用全局吧,用规则就行
同求,软件有代理设置就方便多了,直接 http://127.0.0.1:1080 就可以,不然还要配置规则
同求,感谢🙏
My vps ip is blocked by openai, but I relay the openai api “key” through cloudflare and there seems to be no problem without any proxy function.
同意,我的习惯是非必要不挂梯子,只有浏览器查资料会用chrome扩展[SwitchyOmega]代理流量,因此很需要这个功能。
期待这个功能
同样期待
期待代理功能
同意,我的习惯是非必要不挂梯子,只有浏览器查资料会用chrome扩展[SwitchyOmega]代理流量,因此很需要这个功能。
是的,我也是这个习惯,全局有时候是不好的。
+1
以下是chatgpt实现的代码 用golang 实现http反向代理功能:
- 参数用flag实现
- 请求后端服务支持 http_proxy
- 后端服务支持参数输入
- 输出反向代理的详细日志
开始编码
// go run main -backend https://api.openai.com -proxy http://localhost:1080 // 将 http://localhost:8080 设置到chatbox代理
package main
import (
"flag"
"fmt"
"log"
"net/http"
"net/http/httputil"
"net/url"
)
func logRequest(r *http.Request) {
log.Printf("请求: %s %s %s", r.RemoteAddr, r.Method, r.URL)
for header, values := range r.Header {
for _, value := range values {
log.Printf("请求头: %s: %s", header, value)
}
}
}
func logResponse(resp *http.Response) {
log.Printf("响应: %s %s %d", resp.Request.Method, resp.Request.URL, resp.StatusCode)
for header, values := range resp.Header {
for _, value := range values {
log.Printf("响应头: %s: %s", header, value)
}
}
}
func main() {
// 使用 flag 定义命令行参数
backendURLFlag := flag.String("backend", "", "后端服务的 URL")
httpProxyFlag := flag.String("proxy", "", "HTTP 代理的 URL")
// 解析命令行参数
flag.Parse()
// 检查后端服务 URL 是否为空
if *backendURLFlag == "" {
log.Fatal("请提供后端服务的 URL,使用 -backend 参数")
}
// 解析后端服务的 URL
parsedBackendURL, err := url.Parse(*backendURLFlag)
if err != nil {
log.Fatalf("解析后端服务 URL 失败: %v", err)
}
// 设置 HTTP 代理
if *httpProxyFlag != "" {
parsedProxyURL, err := url.Parse(*httpProxyFlag)
if err != nil {
log.Fatalf("解析 HTTP 代理 URL 失败: %v", err)
}
http.DefaultTransport = &http.Transport{
Proxy: http.ProxyURL(parsedProxyURL),
}
}
// 创建一个反向代理
proxy := httputil.NewSingleHostReverseProxy(parsedBackendURL)
// 在发送请求到后端之前记录日志
proxy.Director = func(r *http.Request) {
r.URL.Scheme = parsedBackendURL.Scheme
r.URL.Host = parsedBackendURL.Host
r.Host = parsedBackendURL.Host
logRequest(r)
}
// 设置反向代理的修改器,以支持将参数传递到后端服务
proxy.ModifyResponse = func(resp *http.Response) error {
// 在处理响应之前记录日志
logResponse(resp)
query := resp.Request.URL.Query()
for key, values := range query {
for _, value := range values {
resp.Header.Add(key, value)
}
}
return nil
}
// 设置反向代理的 HTTP 处理器
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
proxy.ServeHTTP(w, r)
})
// 启动 HTTP 服务器
port := "8080"
fmt.Printf("代理服务器正在监听端口 %s ...\n", port)
log.Fatal(http.ListenAndServe(":"+port, nil))
}
期待代理功能
不知道增加这个功能难不难,好像大家已经呼唤了很久,但是一直没有出来,所以即使安装了,目前也是没有办法使用的状态。因为不想开全局代理。作者辛苦了,其他都已经很完美了,但就是这个代理设置的问题,让他处于弃用的状态。不知道有没有哪位大神可以加上去一下,辛苦,谢谢
支持新增该功能
同求软件本身代理设置🙏
不需要用全局吧,用规则就行
怎么用规则?我再高级FW设置里也没看到呀
以下是chatgpt实现的代码 用golang 实现http反向代理功能:
- 参数用flag实现
- 请求后端服务支持 http_proxy
- 后端服务支持参数输入
- 输出反向代理的详细日志
开始编码
// go run main -backend https://api.openai.com -proxy http://localhost:1080 // 将 http://localhost:8080 设置到chatbox代理
package main import ( "flag" "fmt" "log" "net/http" "net/http/httputil" "net/url" ) func logRequest(r *http.Request) { log.Printf("请求: %s %s %s", r.RemoteAddr, r.Method, r.URL) for header, values := range r.Header { for _, value := range values { log.Printf("请求头: %s: %s", header, value) } } } func logResponse(resp *http.Response) { log.Printf("响应: %s %s %d", resp.Request.Method, resp.Request.URL, resp.StatusCode) for header, values := range resp.Header { for _, value := range values { log.Printf("响应头: %s: %s", header, value) } } } func main() { // 使用 flag 定义命令行参数 backendURLFlag := flag.String("backend", "", "后端服务的 URL") httpProxyFlag := flag.String("proxy", "", "HTTP 代理的 URL") // 解析命令行参数 flag.Parse() // 检查后端服务 URL 是否为空 if *backendURLFlag == "" { log.Fatal("请提供后端服务的 URL,使用 -backend 参数") } // 解析后端服务的 URL parsedBackendURL, err := url.Parse(*backendURLFlag) if err != nil { log.Fatalf("解析后端服务 URL 失败: %v", err) } // 设置 HTTP 代理 if *httpProxyFlag != "" { parsedProxyURL, err := url.Parse(*httpProxyFlag) if err != nil { log.Fatalf("解析 HTTP 代理 URL 失败: %v", err) } http.DefaultTransport = &http.Transport{ Proxy: http.ProxyURL(parsedProxyURL), } } // 创建一个反向代理 proxy := httputil.NewSingleHostReverseProxy(parsedBackendURL) // 在发送请求到后端之前记录日志 proxy.Director = func(r *http.Request) { r.URL.Scheme = parsedBackendURL.Scheme r.URL.Host = parsedBackendURL.Host r.Host = parsedBackendURL.Host logRequest(r) } // 设置反向代理的修改器,以支持将参数传递到后端服务 proxy.ModifyResponse = func(resp *http.Response) error { // 在处理响应之前记录日志 logResponse(resp) query := resp.Request.URL.Query() for key, values := range query { for _, value := range values { resp.Header.Add(key, value) } } return nil } // 设置反向代理的 HTTP 处理器 http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { proxy.ServeHTTP(w, r) }) // 启动 HTTP 服务器 port := "8080" fmt.Printf("代理服务器正在监听端口 %s ...\n", port) log.Fatal(http.ListenAndServe(":"+port, nil)) }
这个可以实现单独让chatbox走代理吗?
再次呼吁一下,没有啥特别好的规则代理软件,设置全局又会影响其他应用。
再次求软件的单独代理功能
+1
0.4.1 都发布了。 代理功能还没有。
我将这个项目fork了一下,添加了代理功能,有兴趣的话可以看看
项目地址:https://github.com/xiefeihong/chatbox

我将这个项目fork了一下,添加了代理功能,有兴趣的话可以看看 项目地址:https://github.com/xiefeihong/chatbox
终于有前端人来搞了, 感谢🙏
我将这个项目fork了一下,添加了代理功能,有兴趣的话可以看看 项目地址:https://github.com/xiefeihong/chatbox
不过能不能出一下各系统的安装版,我是M1
我将这个项目fork了一下,添加了代理功能,有兴趣的话可以看看 项目地址:https://github.com/xiefeihong/chatbox
不过能不能出一下各系统的安装版,我是M1
我先去试试github的workflow
后面我是用了proxifier设置规则解决 比较完美吧
后面我是用了proxifier设置规则解决 比较完美吧
我用的proxifier设置之后无效,进程在打开chatbox的一瞬出现,之后自动closed就消失了,不知道哪里出了bug,其他的软件用proxifier就没这个问题
我将这个项目fork了一下,添加了代理功能,有兴趣的话可以看看 项目地址:https://github.com/xiefeihong/chatbox
不过能不能出一下各系统的安装版,我是M1
我没有在github的workflow里找到m1的运行器,你试试这个行不行 https://github.com/xiefeihong/chatbox/releases/tag/v1.0.1
我将这个项目fork了一下,添加了代理功能,有兴趣的话可以看看 项目地址:https://github.com/xiefeihong/chatbox
不过能不能出一下各系统的安装版,我是M1
我没有在github的workflow里找到m1的运行器,你试试这个行不行 https://github.com/xiefeihong/chatbox/releases/tag/v1.0.1
不行,报错了
小伙计再接再厉,开源有你贡献的一份力量 🥹
建议还是配置下代理的规则,这其实是最通用的做法…… 如果嫌麻烦的话,也可以把 Chatbox 的 API HOST 改成 https://proxy2.chatbox.run/ ,可以解决这个“网络问题”。 至于 Chatbox 的内置代理功能,我预估最快也要半个月以后才可能有。对开源感兴趣的朋友,也欢迎给主分支做做贡献,这样才更好维护,而且用户才能享受到后续的更新。
请问这个有进展了吗 谢谢