change(llm): 出站代理留空=直连,不再回退 HTTP_PROXY 环境变量
- quotaAwareHTTPClient: proxy 为空时 transport.Proxy=nil(直连), 不再用 http.ProxyFromEnvironment 吃 HTTP_PROXY/HTTPS_PROXY - 前端代理输入:提示可带账号密码(socks5://user:pass@host:port), 文案改为「留空表示不使用代理(直连)」 显式的 ARTEX_LLM_PROXY 环境变量不受影响(仍写入 Config.Proxy)。 Claude-Session: https://claude.ai/code/session_019QXSCDmzimwnjntBNCgUD7
This commit is contained in:
1 parent
52aba07846
commit
3297ca1821
2 files changed
+6
-5
No files matched your search
+4
-3
@@ -31,8 +31,9 @@ type Config struct {
|
|||||||
BaseURL string
|
BaseURL string
|
||||||
APIKey string
|
APIKey string
|
||||||
Model string
|
Model string
|
||||||
// Proxy routes all LLM requests through the given proxy URL (http/https/socks5).
|
// Proxy routes all LLM requests through the given proxy URL (http/https/socks5,
|
||||||
// Empty falls back to the standard *_PROXY environment variables.
|
// optionally with user:pass@ credentials). Empty means direct — it does NOT
|
||||||
|
// fall back to the standard *_PROXY environment variables.
|
||||||
Proxy string
|
Proxy string
|
||||||
// RatePerSecond / RatePerMinute cap the shared request rate across ALL agents
|
// RatePerSecond / RatePerMinute cap the shared request rate across ALL agents
|
||||||
// using the provider (0 = that window unlimited).
|
// using the provider (0 = that window unlimited).
|
||||||
@@ -268,7 +269,7 @@ func quotaAwareHTTPClient(proxy string) (*http.Client, error) {
|
|||||||
transport := http.DefaultTransport.(*http.Transport).Clone()
|
transport := http.DefaultTransport.(*http.Transport).Clone()
|
||||||
proxy = strings.TrimSpace(proxy)
|
proxy = strings.TrimSpace(proxy)
|
||||||
if proxy == "" {
|
if proxy == "" {
|
||||||
transport.Proxy = http.ProxyFromEnvironment
|
transport.Proxy = nil // 留空=直连,不回退 HTTP_PROXY/HTTPS_PROXY 环境变量
|
||||||
} else {
|
} else {
|
||||||
proxyURL, err := url.Parse(proxy)
|
proxyURL, err := url.Parse(proxy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -522,12 +522,12 @@ function ProfileSheet({
|
|||||||
<Input
|
<Input
|
||||||
id="p-proxy"
|
id="p-proxy"
|
||||||
className="font-mono"
|
className="font-mono"
|
||||||
placeholder="http://127.0.0.1:8080 · socks5://127.0.0.1:1080"
|
placeholder="socks5://user:pass@127.0.0.1:1080 · http://127.0.0.1:8080"
|
||||||
value={proxy}
|
value={proxy}
|
||||||
onChange={(e) => setProxy(e.target.value)}
|
onChange={(e) => setProxy(e.target.value)}
|
||||||
/>
|
/>
|
||||||
<p className="text-muted-foreground text-xs">
|
<p className="text-muted-foreground text-xs">
|
||||||
仅 LLM 出站请求走此代理,支持 http/https/socks5;留空则用环境变量(HTTP_PROXY/HTTPS_PROXY)。
|
仅 LLM 出站请求走此代理,支持 http/https/socks5,可带账号密码(如 socks5://user:pass@host:port,密码含特殊字符需 URL 编码);留空表示不使用代理(直连)。
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user