本人现在是在杭州一家公司做视觉算法,但是确实对算法理解比较差,做的挺痛苦的,但是工资年收入大约35w左右,短期应该也不至于被裁,公司加班比较严重,每天9点10点才能下班但是有双休 目前手上有一个杭州地区农商行科技信息岗的机会(非主城区),目前hr还没联系谈待遇,可能会有25w+的收入,但是听说农商行的科技岗做几年可能会被安排去业务部门,让我比较纠结 本人家在杭州,如果去农商行的话通勤也会比较长,相比之下现在公司通勤时间可以更短一些 想听听各位佬的意见,或者有没有在农商行工作的佬可以说下情况 1 个帖子 - 1 位参与者 阅读完整话题
如题,本人苹果手机,在对百度网盘的照片权限设置受限访问后,经常出现【选择更多照片/保持当前】的弹窗 今天甚至出现连续弹窗,点了10次左右才不再弹请求弹窗,这是什么情况,怎么做到的 1 个帖子 - 1 位参与者 阅读完整话题
本人在读大三,想问一下一般实习是什么时候实习最好?有没有那种暑假实习两个月的那种。 2 个帖子 - 2 位参与者 阅读完整话题
个人声明 本人为小白,只是提出一种可能的猜测,分享出来,并非绝对如此,请理性看待。 本人并非专业人士,请保持怀疑态度。 疑似被阉割的Claude Opus 4.7 2026年4月16日,A社发布了它们的新模型。 在发布后的几天内,几乎如潮水般的吐槽涌现——人们纷纷表示新模型的问题令人烦恼,我简单总结几点: 1.不说人话 2.上下文倒退 3.分词器更换,价格变相增高。 4.自适应思考不稳定 此外,A社着重削弱了其在网络安全方面的能力,相较于Opus 4.6模型,低了0.7% 项目 Claude Opus 4.7 Claude Opus 4.6 Cybersecurity vulnerability reproduction (CyberGym) 73.1% 73.8% 从中,我似乎感觉到一种感受:这个最新的Opus 4.7 模型,甚至并不如前作Opus4.6,或者说,简直像换了一个模型。 甚至诞生了关于它们的有趣图片: Opus 4.7 Opus 4.6 的确,Opus 4.7在各个方面似乎都差于Opus 4.6,不稳定…记不住事情…说话像GPT,这甚至可能令人思考——这到底是不是一个新发布的Opus模型。 神秘的Claude Mythos Preview 在Opus 4.7 推出前,A社曾泄露了它们的前沿模型消息,Mythos(卡皮巴拉),借着这张模型对比图,我们也许可以略窥一二它可能达到的强大(因为截至目前为止,大部分人无法使用这个模型,A社向部分B端提供此模型,并且貌似放弃了C端市场) Claude Mythos Preview 几乎全面领先于 Opus 4.7,也远远超越其他模型。 当然,它的价格让人无奈,我列出一个表格来使对比更清晰对比 模型 输入价格 (每百万 token) 输出价格 (每百万 token) Claude Mythos Preview $25 $125 Claude Opus 4.6/4.7 $5 $25 Claude Sonnet 4.6 $3 $15 Claude Haiku 4.5 $1 $5 Claude Mythos Preview的价格相较于Opus翻了5倍,这种恐怖的价格也许与其的模型参数量有所关系,大多人猜测,这个价格恐怖的模型大概率参数量一样是 Opus 模型的数倍。 订阅套餐的额度提升 翻译:Opus 4.7 使用了更多思考代币,因此我们提高了所有订阅者的速率限制以弥补这一点。祝你玩得开心! 据佬友测试,pro账号的5h,7d,可能已经全部翻倍,其他订阅目前我尚未得知。 这与我的标题有什么关系? 我们可以将前面的线索串联起来,首先,A社发布了一个新的Opus(4.7)模型,而此模型,综合方面甚至不如旧版本的Opus(4.6)。 那么,推出这个模型的目的大概率不是为了让人去辱骂它们(因为它们大概率已经自己使用过了,也应该知道这个最新模型的问题。) 在前面我们得知,Claude Mythos Preview 的价格是极为昂贵的,且不面向大多数C端。 而这时有一个很重要的问题需要确认,因为它关乎我的论点。 那就是——Claude Mythos Preview 是怎么来的:我猜想它是源于Opus 4.6。 此外,我需要提到一种可能,Claude Mythos Preview也许有可能是A社重塑的一个全新模型,与Opus 4.6 毫无瓜葛,这都是可能是,所以理性看待我的想法——它并不准确。 Opus 4.6 几乎是一个强大的模型,它稳定,上下文强大,说话清晰易懂,几乎没有任何语料污染。 也许在此基础上,A社投入巨大将其的参数量堆到一个恐怖的规模,造就Claude Mythos Preview 的恐怖能力,但同时,它的价格也过于高昂,导致无法完美的使用它(算力,种种因素束缚着这个模型) 同时,A社也许自认为已经将这条路堆到了极限。 所以它们需要转型——Opus 4.7。 一个很有意思的点是,Opus 4.7 使用了新的分词器,我并没有学习过大模型的种种,但我意识到这可能是一个巨大的变化,A社重构了Opus 4.7这个模型,目前的新模型是一个新的基础开始。 请辩证看待,怀疑看待,这段话可能不对,我并不了解大模型,我只是猜测。 并且这也许有所佐证,Opus 4.7 与Opus 4.6的上下文简直是大变样。 所以我提出一个大胆的假设: Claude Mythos Preview 是一个已经走到头的方向,它昂贵,且难以进步 所以A社推出了新的模型——Opus 4.7 面向B端进行试水,它大概率是一个全新的模型,用于转型,他们也许希望制造出更便宜,更好用的模型,因为原有的路可能无法走通。 而这时,庞大的C端是一个完美的地方。 大概率佬友们都知道,A社的官方Claude订阅额度是非常之高的,在A社增加所有订阅配额前,大概是这样 套餐 5h $ 限额 7d $ 限额 月 $ 限额 Pro ($20) $4.1 $37.5 $163 Max 5× ($100) $24.8 $312.5 $1,354 Max 20× ($200) $82.5 $625.0 $2,708 而如今参考pro订阅翻2倍的案例,我们得知,pro额度目前的月限额大概为:300美刀。 我不能去揣测max套餐的额度,因为我并没有这方面的知识,所以我们假设——这三个套餐都有一定量的提升。 但是为什么? 为什么A社这个几乎抠门的骨子里的公司要提升额度??? 我们知道,目前的订阅已经是赔本了(即使会降智,我猜测这是一种采集完数据后降本的策略,因为前几个月已经采集到了足够的信息) 那么它为什么要再次提升额度? 我想,是因为新的Opus 4.7 模型,如果A社想要获得更多信息,那么提高配额是一个绝妙的点子。 能看出来其实目前的A社套餐便都是赔本订阅,人们花着极少的钱购买到了远超数倍的体验。 A社为什么要推出这些套餐?A社是为了打市场吗?我想——这可能与模型有关。 每次出新模型后都会高智商,随后降智——这也许是吸取到了足够数据后的降本。 而目前,Opus 4.6依旧降智,人们需要去使用Opus 4.7 ,全新的更多配额让更多的人去使用Opus 4.7,那样的数据也许是极为重要的。 5 个帖子 - 4 位参与者 阅读完整话题
本人在读大二,大专计算机,专业学习Python java vue,本人对ai agent感兴趣,给Astrbot PR过,写过很多agent插件,有自己的Blog网站,熟练使用git docker ,有自己的公益站,求助佬友们这样好找实习吗? GitHub tooplick - Overview tooplick has 25 repositories available. Follow their code on GitHub. 6 个帖子 - 6 位参与者 阅读完整话题
首先本人是国内 985 在读研究生,不是软文,不是软文。 辅助完成一个课程的作业,只需要手机上 发送一张不是很清晰的截图,就可以 起十几个 agent 帮你干活,干完手机 app 发消息给你通知你干完了 7 个帖子 - 3 位参与者 阅读完整话题
各位大佬们,下午好,本人最近新购入一台macAir 16G 512内存本子准备大干一场,最近国外的模型不好调用,抽也抽不到,抢key也抢不到,哈哈我手太慢了,所有想能够在本地搭建一个 小型的模型供自己使用 gpt 或者御三家都可以的模型(我是小白,各位如果觉得离谱不要喷我),因为我的代码没有那么高深,所以日常够用就行,有的老友说,你可以去用在线模型呀,我最近用trae模型一直在排队,所有我就萌生了自己搭建一个模型的想法。 如果各位佬友们有那种保姆级的入门教程,如何快速搭建一套完整的模型的教程的话,可以分享一下,感激不尽。谢谢大家。 粗体文本 8 个帖子 - 8 位参与者 阅读完整话题
本人一直想要搭建一个中转站,偶然看见sub2api,故使用它搭建了一个,以下是步骤: 先约定 3 个你要替换的值: api.example.com :改成你的域名 [email protected] :改成你的管理员邮箱 CHANGE_ME... :改成你自己生成的随机密钥 1)登录服务器并更新系统 ssh root@你的服务器IP apt update apt -y upgrade timedatectl 这一步是基础准备,先把系统更新到当前仓库版本,并确认时间正常。时间不准会影响 HTTPS、登录态和支付回调之类的功能。Docker 官方当前 Ubuntu 安装文档仍然建议使用官方 apt 仓库安装 Docker Engine。 2)安装 Docker Engine 和 Docker Compose v2 先卸载可能冲突的旧包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do apt-get remove -y $pkg done 安装 Docker 官方仓库: apt-get update apt-get install -y ca-certificates curl install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc chmod a+r /etc/apt/keyrings/docker.asc echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \ > /etc/apt/sources.list.d/docker.list 安装 Docker 和 Compose 插件: apt-get update apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 检查版本: docker --version docker compose version systemctl enable docker systemctl start docker systemctl status docker --no-pager Docker 官方当前安装文档给出的推荐安装包名就是 docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 。另外,Docker 也明确提醒:如果你用 UFW 或 firewalld,Docker 暴露出来的端口可能绕过防火墙表面规则,所以正式环境尽量只暴露 80/443,把 8080 留给本机反代。 3)安装 Git、openssl 和基础工具 apt-get install -y git curl wget nano openssl ufw 这些工具后面都会用到: git 拉仓库 openssl 生成密钥 nano 编辑配置 ufw 放行 80/443/22 4)准备部署目录并拉取官方文件 mkdir -p /opt/sub2api cd /opt/sub2api git clone https://github.com/Wei-Shaw/sub2api.git source cp source/deploy/docker-compose.local.yml . cp source/deploy/.env.example .env cp source/deploy/config.example.yaml config.yaml Sub2API 官方部署说明里,手动部署路径就是:克隆仓库、复制 .env.example 、创建 data postgres_data redis_data ,再用 docker-compose.local.yml 启动;并且官方明确把 local 版描述为“本地目录、易迁移”。 5)生成生产环境密钥 先生成三个随机值: openssl rand -hex 32 openssl rand -hex 32 openssl rand -hex 32 把输出保存下来,分别用于: POSTGRES_PASSWORD JWT_SECRET TOTP_ENCRYPTION_KEY 官方 .env 模板和部署说明都强调: POSTGRES_PASSWORD 必填,而 JWT_SECRET 和 TOTP_ENCRYPTION_KEY 最好固定,否则会影响持久登录态和 2FA。 6)写入最终版 .env cat > /opt/sub2api/.env <<'EOF' BIND_HOST=127.0.0.1 SERVER_PORT=8080 SERVER_MODE=release RUN_MODE=standard TZ=Asia/Shanghai POSTGRES_USER=sub2api POSTGRES_PASSWORD=CHANGE_ME_TO_A_LONG_RANDOM_PASSWORD POSTGRES_DB=sub2api DATABASE_MAX_OPEN_CONNS=50 DATABASE_MAX_IDLE_CONNS=10 DATABASE_CONN_MAX_LIFETIME_MINUTES=30 DATABASE_CONN_MAX_IDLE_TIME_MINUTES=5 REDIS_PASSWORD= REDIS_DB=0 REDIS_POOL_SIZE=1024 REDIS_MIN_IDLE_CONNS=10 REDIS_ENABLE_TLS=false [email protected] ADMIN_PASSWORD= JWT_SECRET=CHANGE_ME_TO_A_LONG_RANDOM_HEX_STRING JWT_EXPIRE_HOUR=24 JWT_ACCESS_TOKEN_EXPIRE_MINUTES=0 TOTP_ENCRYPTION_KEY=CHANGE_ME_TO_ANOTHER_LONG_RANDOM_HEX_STRING GEMINI_OAUTH_CLIENT_ID= GEMINI_OAUTH_CLIENT_SECRET= GEMINI_OAUTH_SCOPES= GEMINI_QUOTA_POLICY= GEMINI_CLI_OAUTH_CLIENT_SECRET= ANTIGRAVITY_OAUTH_CLIENT_SECRET= SECURITY_URL_ALLOWLIST_ENABLED=true SECURITY_URL_ALLOWLIST_ALLOW_INSECURE_HTTP=false SECURITY_URL_ALLOWLIST_ALLOW_PRIVATE_HOSTS=false SECURITY_URL_ALLOWLIST_UPSTREAM_HOSTS= UPDATE_PROXY_URL= EOF 然后编辑,把占位符改成你自己的值: nano /opt/sub2api/.env 这里我保留了 .env 里的基础白名单开关,但把域名清单放到 config.yaml 里统一管理,因为官方 config.example.yaml 里真正完整的 URL 白名单字段在 security.url_allowlist 下。 7)写入最终版 config.yaml cat > /opt/sub2api/config.yaml <<'EOF' server: host: "0.0.0.0" port: 8080 mode: "release" frontend_url: "https://api.example.com" trusted_proxies: [] max_request_body_size: 268435456 h2c: enabled: true max_concurrent_streams: 50 idle_timeout: 75 max_read_frame_size: 1048576 max_upload_buffer_per_connection: 2097152 max_upload_buffer_per_stream: 524288 run_mode: "standard" cors: allowed_origins: - "https://api.example.com" allow_credentials: true security: url_allowlist: enabled: true upstream_hosts: - "api.openai.com" - "api.anthropic.com" - "generativelanguage.googleapis.com" - "cloudcode-pa.googleapis.com" - "*.openai.azure.com" pricing_hosts: - "raw.githubusercontent.com" crs_hosts: [] allow_private_hosts: false allow_insecure_http: false response_headers: enabled: true additional_allowed: [] force_remove: [] csp: enabled: true policy: "default-src 'self'; script-src 'self' __CSP_NONCE__ https://challenges.cloudflare.com https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https:; font-src 'self' data: https://fonts.gstatic.com; connect-src 'self' https:; frame-src https://challenges.cloudflare.com; frame-ancestors 'none'; base-uri 'self'; form-action 'self'" proxy_probe: insecure_skip_verify: false proxy_fallback: allow_direct_on_error: false EOF 改域名: nano /opt/sub2api/config.yaml 官方当前配置示例里, frontend_url 用于生成邮件等外部链接;URL 白名单示例里也明确列出了 upstream_hosts 、 pricing_hosts 、 crs_hosts 、 allow_private_hosts 、 allow_insecure_http 。我这里把样例里的 allow_private_hosts 和 allow_insecure_http 从 true 收紧成了更适合公网生产的 false 。 8)写入最终版 docker-compose.local.yml cat > /opt/sub2api/docker-compose.local.yml <<'EOF' services: sub2api: image: weishaw/sub2api:latest container_name: sub2api restart: unless-stopped ulimits: nofile: soft: 100000 hard: 100000 ports: - "${BIND_HOST:-127.0.0.1}:${SERVER_PORT:-8080}:8080" volumes: - ./data:/app/data - ./config.yaml:/app/data/config.yaml:ro environment: - AUTO_SETUP=true - SERVER_HOST=0.0.0.0 - SERVER_PORT=8080 - SERVER_MODE=${SERVER_MODE:-release} - RUN_MODE=${RUN_MODE:-standard} - DATABASE_HOST=postgres - DATABASE_PORT=5432 - DATABASE_USER=${POSTGRES_USER:-sub2api} - DATABASE_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required} - DATABASE_DBNAME=${POSTGRES_DB:-sub2api} - DATABASE_SSLMODE=disable - DATABASE_MAX_OPEN_CONNS=${DATABASE_MAX_OPEN_CONNS:-50} - DATABASE_MAX_IDLE_CONNS=${DATABASE_MAX_IDLE_CONNS:-10} - DATABASE_CONN_MAX_LIFETIME_MINUTES=${DATABASE_CONN_MAX_LIFETIME_MINUTES:-30} - DATABASE_CONN_MAX_IDLE_TIME_MINUTES=${DATABASE_CONN_MAX_IDLE_TIME_MINUTES:-5} - REDIS_HOST=redis - REDIS_PORT=6379 - REDIS_PASSWORD=${REDIS_PASSWORD:-} - REDIS_DB=${REDIS_DB:-0} - REDIS_POOL_SIZE=${REDIS_POOL_SIZE:-1024} - REDIS_MIN_IDLE_CONNS=${REDIS_MIN_IDLE_CONNS:-10} - REDIS_ENABLE_TLS=${REDIS_ENABLE_TLS:-false} - ADMIN_EMAIL=${ADMIN_EMAIL:[email protected]} - ADMIN_PASSWORD=${ADMIN_PASSWORD:-} - JWT_SECRET=${JWT_SECRET:-} - JWT_EXPIRE_HOUR=${JWT_EXPIRE_HOUR:-24} - JWT_ACCESS_TOKEN_EXPIRE_MINUTES=${JWT_ACCESS_TOKEN_EXPIRE_MINUTES:-0} - TOTP_ENCRYPTION_KEY=${TOTP_ENCRYPTION_KEY:-} - TZ=${TZ:-Asia/Shanghai} - GEMINI_OAUTH_CLIENT_ID=${GEMINI_OAUTH_CLIENT_ID:-} - GEMINI_OAUTH_CLIENT_SECRET=${GEMINI_OAUTH_CLIENT_SECRET:-} - GEMINI_OAUTH_SCOPES=${GEMINI_OAUTH_SCOPES:-} - GEMINI_QUOTA_POLICY=${GEMINI_QUOTA_POLICY:-} - GEMINI_CLI_OAUTH_CLIENT_SECRET=${GEMINI_CLI_OAUTH_CLIENT_SECRET:-} - ANTIGRAVITY_OAUTH_CLIENT_SECRET=${ANTIGRAVITY_OAUTH_CLIENT_SECRET:-} - SECURITY_URL_ALLOWLIST_ENABLED=${SECURITY_URL_ALLOWLIST_ENABLED:-true} - SECURITY_URL_ALLOWLIST_ALLOW_INSECURE_HTTP=${SECURITY_URL_ALLOWLIST_ALLOW_INSECURE_HTTP:-false} - SECURITY_URL_ALLOWLIST_ALLOW_PRIVATE_HOSTS=${SECURITY_URL_ALLOWLIST_ALLOW_PRIVATE_HOSTS:-false} - SECURITY_URL_ALLOWLIST_UPSTREAM_HOSTS=${SECURITY_URL_ALLOWLIST_UPSTREAM_HOSTS:-} - UPDATE_PROXY_URL=${UPDATE_PROXY_URL:-} depends_on: postgres: condition: service_healthy redis: condition: service_healthy networks: - sub2api-network healthcheck: test: ["CMD", "wget", "-q", "-T", "5", "-O", "/dev/null", "http://localhost:8080/health"] interval: 30s timeout: 10s retries: 3 start_period: 30s postgres: image: postgres:18-alpine container_name: sub2api-postgres restart: unless-stopped ulimits: nofile: soft: 100000 hard: 100000 volumes: - ./postgres_data:/var/lib/postgresql/data environment: - POSTGRES_USER=${POSTGRES_USER:-sub2api} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required} - POSTGRES_DB=${POSTGRES_DB:-sub2api} - PGDATA=/var/lib/postgresql/data - TZ=${TZ:-Asia/Shanghai} networks: - sub2api-network healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-sub2api} -d ${POSTGRES_DB:-sub2api}"] interval: 10s timeout: 5s retries: 5 start_period: 10s redis: image: redis:8-alpine container_name: sub2api-redis restart: unless-stopped ulimits: nofile: soft: 100000 hard: 100000 volumes: - ./redis_data:/data command: > sh -c ' redis-server --save 60 1 --appendonly yes --appendfsync everysec ${REDIS_PASSWORD:+--requirepass "$REDIS_PASSWORD"} ' environment: - TZ=${TZ:-Asia/Shanghai} - REDISCLI_AUTH=${REDIS_PASSWORD:-} networks: - sub2api-network healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 start_period: 5s networks: sub2api-network: driver: bridge EOF 这份 compose 依然遵循官方 local 版思路:本地目录持久化、 weishaw/sub2api:latest + postgres:18-alpine + redis:8-alpine 、 /health 健康检查;另外我把 config.yaml 的挂载打开了,因为官方默认是注释状态。 9)创建数据目录并启动容器 cd /opt/sub2api mkdir -p data postgres_data redis_data docker compose -f docker-compose.local.yml up -d docker compose -f docker-compose.local.yml ps 如果一切正常,再看日志: docker compose -f docker-compose.local.yml logs -f sub2api Sub2API 官方说明里写得很明确:Compose 模式下 AUTO_SETUP=true 时,首次启动会自动连接 PostgreSQL 和 Redis、执行数据库迁移、创建管理员账号、在未提供时自动生成管理员密码。 10)取出管理员密码并做健康检查 如果你在 .env 里把 ADMIN_PASSWORD= 留空,就执行: docker compose -f docker-compose.local.yml logs sub2api | grep -i "admin password" 本机健康检查: curl http://127.0.0.1:8080/health 官方手动部署说明和命令示例里都给了从日志里查自动生成管理员密码的方法。( GitHub ) 11)安装 Caddy 并启用自动 HTTPS 先安装 Caddy 官方仓库: apt install -y debian-keyring debian-archive-keyring apt-transport-https curl curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg chmod o+r /etc/apt/sources.list.d/caddy-stable.list apt update apt install -y caddy 这正是 Caddy 官方当前给出的 Debian/Ubuntu stable 安装路径。( Caddy Web Server ) 12)写入 Caddyfile cat > /etc/caddy/Caddyfile <<'EOF' api.example.com { @static { path /assets/* path /logo.png path /favicon.ico } header @static { Cache-Control "public, max-age=31536000, immutable" -Pragma -Expires } tls { protocols tls1.2 tls1.3 } reverse_proxy 127.0.0.1:8080 { health_uri /health health_interval 30s health_timeout 10s health_status 200 header_up X-Real-IP {remote_host} header_up X-Forwarded-For {remote_host} header_up X-Forwarded-Proto {scheme} header_up X-Forwarded-Host {host} header_up CF-Connecting-IP {http.request.header.CF-Connecting-IP} } encode { zstd gzip 6 minimum_length 256 } request_body { max_size 100MB } log { output file /var/log/caddy/sub2api.log { roll_size 50mb roll_keep 10 roll_keep_for 720h } format json level INFO } handle_errors { respond "{err.status_code} {err.status_text}" } } EOF 检查并重载: caddy fmt --overwrite /etc/caddy/Caddyfile caddy validate --config /etc/caddy/Caddyfile systemctl enable caddy systemctl restart caddy systemctl status caddy --no-pager 官方仓库当前确实自带 deploy/Caddyfile ,里面已经包含 TLS、 reverse_proxy localhost:8080 、 /health 健康检查、转发真实 IP 头和日志滚动思路,所以这条路线最省心。 13)放行防火墙 ufw allow 22/tcp ufw allow 80/tcp ufw allow 443/tcp ufw enable ufw status verbose 不要开放 8080 给公网,因为你已经通过 BIND_HOST=127.0.0.1 把应用只绑在本机,再让 Caddy 反代它。这样也符合 Docker 官方对防火墙的安全提醒。 14)最终验证 先本机验证: curl http://127.0.0.1:8080/health curl -I https://api.example.com 然后浏览器访问: https://api.example.com 用管理员邮箱和日志里拿到的密码登录。 15)部署完成后立刻执行的 5 个检查 登录后台,确认能打开首页。 到设置里确认站点 URL 是否正确。 frontend_url 如果没配对,后面邮件链接和支付回调会出错。 如果你要启用 URL 白名单,只保留自己真的要用的上游域名。官方样例里带了 OpenAI、Anthropic、Gemini、Azure OpenAI 等域名,但生产上不建议全开。 如果要开支付,后台路径是 设置 → 支付设置 ,官方当前支持 EasyPay、支付宝官方、微信官方、Stripe;多实例分流支持 round-robin 和 least-amount ,回调地址会按你的域名自动拼接。 如果你用 Stripe,记得订阅 payment_intent.succeeded 和 payment_intent.payment_failed 。 16)后续最常用的运维命令 cd /opt/sub2api # 看状态 docker compose -f docker-compose.local.yml ps # 看日志 docker compose -f docker-compose.local.yml logs -f sub2api # 重启应用 docker compose -f docker-compose.local.yml restart sub2api # 更新镜像 docker compose -f docker-compose.local.yml pull docker compose -f docker-compose.local.yml up -d # 停服务 docker compose -f docker-compose.local.yml down 官方部署说明里也给了 local 版这组常用命令,并强调 local 版最方便整目录迁移和备份。 4 个帖子 - 4 位参与者 阅读完整话题
本人重度B站使用者,之前刷竖屏视频的时候被各种AI短剧视频,某果短剧困扰了很久,刷两条来一条,和牛皮癣一样,关键是刷到了有时还不自觉的看下去 越看越推 ,之前的应对方法为改用白色版本B站,可惜很久没更新了,有很多BUG,分享有问题,还容易闪退,后面还是没用下去; 最近发现 GKD v1.12.0-beta.1 之后的版本更新支持了 滑动操作 这应对B站的竖屏模式下的广告视频非常不错 效果 针对各类推广视频直接上滑跳过 使用方法 订阅 → 本地订阅 → 应用规则 → 哔哩哔哩 → 右下角 + 号 → 放入规则即可 { key: 17, name: '功能类-自动跳过推广/漫剧/预约/小火箭', desc: '竖屏播放时检测到各种推广标识自动上滑跳过该视频', rules: [ { key: 0, name: '检测并跳过:创作推广', fastQuery: true, actionCd: 1500, activityIds: [ 'com.bilibili.video.story.StoryVideoActivity', 'com.bilibili.video.story.StoryTransparentActivity' ], matches: '[vid="story_title"][visibleToUser=true]', action: 'swipe', swipeArg: { start: { x: 'screenWidth * 0.5', y: 'screenHeight * 0.8' }, end: { x: 'screenWidth * 0.5', y: 'screenHeight * 0.2' }, duration: 300 } }, { key: 1, name: '检测并跳过:短剧,漫剧', fastQuery: true, actionCd: 1500, activityIds: [ 'com.bilibili.video.story.StoryVideoActivity', 'com.bilibili.video.story.StoryTransparentActivity' ], matches: '[vid="entry_type"][text="漫剧"][visibleToUser=true]', action: 'swipe', swipeArg: { start: { x: 'screenWidth * 0.5', y: 'screenHeight * 0.8' }, end: { x: 'screenWidth * 0.5', y: 'screenHeight * 0.2' }, duration: 300 } }, { key: 2, name: '检测并跳过:付费推广', fastQuery: true, actionCd: 1500, activityIds: [ 'com.bilibili.video.story.StoryVideoActivity', 'com.bilibili.video.story.StoryTransparentActivity' ], matches: '[vid="charge_widget_start_text"][visibleToUser=true]', action: 'swipe', swipeArg: { start: { x: 'screenWidth * 0.5', y: 'screenHeight * 0.8' }, end: { x: 'screenWidth * 0.5', y: 'screenHeight * 0.2' }, duration: 300 } }, { key: 3, name: '检测并跳过:含图标小火箭推广(ImageSpan占位)', fastQuery: true, actionCd: 1500, activityIds: [ 'com.bilibili.video.story.StoryVideoActivity', 'com.bilibili.video.story.StoryTransparentActivity' ], matches: '[vid="title"][text~=".* +0$"][visibleToUser=true]', action: 'swipe', swipeArg: { start: { x: 'screenWidth * 0.5', y: 'screenHeight * 0.8' }, end: { x: 'screenWidth * 0.5', y: 'screenHeight * 0.2' }, duration: 300 } } ] } 规则语法为JSON5,具体可以见GKD文档 订阅规则 | GKD GKD 基于 Android 无障碍服务(AccessibilityService)获取到的 无障碍节点树(Accessibility Node Tree) 其实和HTML的匹配DOM树差不多,整个规则结构的JSON5格式还是十分清晰的,需要了解一点安卓知识(activity,视图树什么的) 基本的思路就是 找到了某个节点 → 触发某个操作 难点在找到广告对应的特征节点,以及触发什么样的操作(在不影响使用的情况下) GKD本身是支持捕获屏幕快照的,可以在 设置 → 其他 → 高级设置 → 快照按钮 此时屏幕出现一个捕获按钮,找到对应的有广告界面捕获就行,捕获完成后可以生成一个查看链接(注意消除个人敏感信息),也可以直接下载zip,查看JSON格式的信息;具体操作不在赘述了 期待各位佬友发挥,也可以分享下自己觉得好用的规则,多多交流 5 个帖子 - 2 位参与者 阅读完整话题
反重力这段时间疯狂retry疑似只针对个别常用高用量号? 本人一个ultra三个pro,这两天常用的ultra 和一个pro都用不了,试了各种方法退版本改json都毫无起色。刚才试了不咋用的俩pro,发现都可以!新买了一个pixel 一年Pro号没用过的同样的环境也可以还异常丝滑 气死人咧。别以后都这样软封禁逼迫减少用量啊 8 个帖子 - 6 位参与者 阅读完整话题
本人研0,想毕业从事大模型,agent方面的工作,但现在不知道从何学起,想问问佬友们的经验,谢谢 2 个帖子 - 2 位参与者 阅读完整话题
先说本人情况: 根据模拟考,预估成绩650-675之间(希望别考崩了哈哈),在河北对应中档-中档偏上的985,如同济-电子科技大-华科-西交-天大-北航-哈工大这一列 现在5月前要决定强基计划。 强基计划:985大学,只能报一个专业,100%保研,不准转专业(这是最大的问题)。 目前感兴趣的是自动化(但是强基作为国家培养理科基础人才的东西,没有直接的自动化),但是有可能毕业之后比较挤;另外现在是具身智能比较挤的时候,有可能我毕业之后卷到头了变成红海,有很多被卷翻了的人等着社招,对刚毕业的不利;再就是自动化不是一个越老越吃香的学科,可能被优化; 之后看航空航天,这方面肯定是接下来国家投入的重点,包括民营航天、低空经济之类的应该会在我毕业(8年左右)开始大规模井喷(像现在宇树这样),但是肯定会经历一波九死一生的大逃杀,到时候我在毒圈里还是毒圈外就不知道了; 再考虑微电子(应用物理学强基计划),这肯定需要硕士学历,所以强基的保研给了很大的福利。目前据我查资料有设计公司(海思)和fab厂两大方向,虽然累但是工资比较高,而且芯片设计应该挺吃资历的吧,优化风险小一点? 以及军工,也就是北理、西交、西北工大、哈工大,也有一定潜力 请问各位佬友,如果您是这几个方向的话: 您的大致学历、就业方向? 您认为这个学科的读研、读博是否面临巨大困难? 您认为这个专业对老资历(35岁以上)是否友好? 其他想补充的? 下面是我目前比较感兴趣的部分学校的招生数量 招生计划.pdf (392.0 KB) 7 个帖子 - 3 位参与者 阅读完整话题
本人已工作7年,跳槽的公司不多,想了解现在外面行情如何,对年龄还敏感不。应届生优势还是和之前一样大吗?大龄程序员依旧无出路? 5 个帖子 - 3 位参与者 阅读完整话题
本人使用的 Claude 账号注册于 2024 年 3 月,绑的是 +63 的菲律宾手机号。 另外,这里告诉你们怎么查看自己绑定的手机号和注册时间 首先,打开网页端 claude,点击左下角头像,找到那个齿轮图标 然后,点击 Privacy 这一栏,点击 Export data 导出数据 接下来,需要等待一段时间,然后,就会有一封像这样的邮件,点击 Download Data 下载过来 浏览器会开始下载 data 开头,带有 uuid 的 zip 文件 解压后就可以看到这三个文件 打开 users.json 可以查看自己的 Claude 账号的手机号。 需要说明的是,Claude 没有直接提供注册时间,但可以通过 conversations.json 的第一个 created_at 字段的值大致推算注册时间。 4 个帖子 - 2 位参与者 阅读完整话题
本人属于那种人菜瘾大的那种 没事儿就喜欢自己给自己点压力,但是又控制不住自己的欲望,没事儿就喜欢搞点有的没的 勾搭小姑娘或者自己定时起飞 因为精神状态一直高压,导致长期失眠,甚至很多时候困了也不睡,要把下班那点自由的时光榨干到极致,到了第二天再励志今晚早睡,周而复始乐此不疲,近期上班的时候咖啡喝多了,感觉胸闷、恶心、浑身盗汗、难以言表的心慌,正好还有一个坏习惯,遇事不慌抽一根然后彻底喘不上气了,然后更害怕了一害怕更出汗了 后知后觉反应过来了,可能是要猝死的节奏,已经再敲打阎王的窗了,然后火速请假回家睡觉去了,路上还买了速效救心丸(我真牛逼),睡一半的时候突然惊醒,心慌胸闷、呼吸困难我甚至都不敢弹射起步起床吃药,顶着心慌缓慢起身吃了几粒速效救心丸不得不说那小东西像特么我的命一样苦甚至感觉比我的命还要苦 次日痛定思痛控制作息 每天睡够必须8小时,策略就是晚上吃完饭就吃一片褪黑素(我正常6.30之前吃),关灯爬床上刷L站,十分有效!9点就睡着,但是每各几个小时就会醒一次不过无所谓,加一起睡10小时那也是10小时,第二天我就感觉应该修养过来了 但是紧接着我就发现不对了 第二天和第三天都做了春梦 醒来再睡就又换了一个场景继续做春梦,自从发现睡觉能做春梦开始,我现在甚至有点期待早点下班回家睡觉了 发现这个想法以后 顿时就感觉我这辈子是特么废了 9 个帖子 - 7 位参与者 阅读完整话题
本人前端开发,目前维护公司的几个海外项目。 这些项目都把业务代码、node_modules、多语言资源拆分成三个git仓库,然后多语言资源还是用在线excel维护,添加或者修改多语言都得走流程去改,改完之后自己手动执行脚本把excel转成json,再推到业务代码和多语言仓库; 更离谱的是这个在线excel是测试组的老大在维护 ?? 现在做新需求都不想去动多语言,甚至不想加依赖,不然还得多一个步骤,遇到比较简单的功能都是手撕实现 再加上项目频繁换人开发,再加上功能迁移,里面可以说是毒瘤屎山了,什么jquery跟vue互相操作dom,什么if else嵌套,一个消息类型的判断我都不明白怎么写了500多行的 只能说当初被公司名头骗了,现在上班如同坐牢,唉 13 个帖子 - 7 位参与者 阅读完整话题
只说国产也都是在聊Qwen,GLM, 为啥之前火出圈的DeepSeek现在不名不见经传了。我本人一直用CodeX和Gemini,国内的就体验过Qwen。 15 个帖子 - 15 位参与者 阅读完整话题
本人一直在高强度使用ChatGPT & Claude 用于编程相关,昨晚睡前看到Opus 4.7发布了想着明早可以让它帮我优化一些复杂代码了,今早让它输出一份优化方案,xhigh effort, 结果很差; 我让ChatGPT 5.4 xhigh review了一下这份plan,给出了10点优化方案,只有3点是经过review的; 主要问题体现在Claude没有理解整体上下文、项目逻辑,不清楚是因为为了节省Token还是怎么回事,不如ChatGPT更理解项目逻辑; 看官方放出的跑分倒是很高,实际效果差强人意,还是等ChatGPT 5.6吧 9 个帖子 - 9 位参与者 阅读完整话题
xhs上有人反馈,opus4.7的中文和现在的gpt有一拼。 这句话太有味道了: 作者本人提供的对比图: 不知道在其他方面会不会也受到这种语言习惯变化的影响。 5 个帖子 - 5 位参与者 阅读完整话题
本人是一个刚入门的新手小白,在配置codex的时候遇到问题,前来求助各位佬。 如图所示,我在某公益站上的账户余额是有的,在我配置到cc switch上,选择配置如下 结果弹出额度不足,同时,在选用其他中转站 时常提示如下,可是登录iu中转站上是能看到对应模型的。向各位佬们求助 8 个帖子 - 5 位参与者 阅读完整话题