diff --git a/.forgejo/workflows/test-secrets.yaml b/.forgejo/workflows/test-secrets.yaml new file mode 100644 index 0000000..0fe0940 --- /dev/null +++ b/.forgejo/workflows/test-secrets.yaml @@ -0,0 +1,109 @@ +# 光湖 · Secrets连通测试 +name: Secrets测试 + +on: + workflow_dispatch: + push: + paths: + - '.gitea/workflows/test-secrets.yaml' + - '.forgejo/workflows/test-secrets.yaml' + +jobs: + test-secrets: + runs-on: ubuntu + steps: + - name: 测试密钥可用性 + env: + DEEPSEEK_API_KEY: ${{ secrets.DEEPSEEK_API_KEY }} + QIANWEN_API_KEY: ${{ secrets.QIANWEN_API_KEY }} + ZY_REPO_TOKEN: ${{ secrets.ZY_REPO_TOKEN }} + COS_SECRET_ID: ${{ secrets.COS_SECRET_ID }} + COS_SECRET_KEY: ${{ secrets.COS_SECRET_KEY }} + SG_BRAIN_HOST: ${{ secrets.SG_BRAIN_HOST }} + SG_BRAIN_USER: ${{ secrets.SG_BRAIN_USER }} + SG_BRAIN_KEY: ${{ secrets.SG_BRAIN_KEY }} + run: | + echo "═══ Forgejo Secrets 连通测试 ═══" + echo "" + + # 检查每个secret是否有值(不显示值本身) + check_secret() { + local name=$1 + local val=$2 + if [[ -n "$val" && "$val" != "" ]]; then + local masked="${val:0:4}****${val: -4}" + echo " ✅ $name = $masked (长度: ${#val})" + else + echo " ❌ $name = (空)" + fi + } + + check_secret "DEEPSEEK_API_KEY" "$DEEPSEEK_API_KEY" + check_secret "QIANWEN_API_KEY" "$QIANWEN_API_KEY" + check_secret "ZY_REPO_TOKEN" "$ZY_REPO_TOKEN" + check_secret "COS_SECRET_ID" "$COS_SECRET_ID" + check_secret "COS_SECRET_KEY" "$COS_SECRET_KEY" + check_secret "SG_BRAIN_HOST" "$SG_BRAIN_HOST" + check_secret "SG_BRAIN_USER" "$SG_BRAIN_USER" + check_secret "SG_BRAIN_KEY" "$SG_BRAIN_KEY" + + echo "" + echo "═══ API连通测试 ═══" + + # DeepSeek + if [[ -n "$DEEPSEEK_API_KEY" ]]; then + echo -n " DeepSeek: " + RESP=$(curl -s -X POST https://api.deepseek.com/v1/chat/completions \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer $DEEPSEEK_API_KEY" \ + -d '{"model":"deepseek-chat","messages":[{"role":"user","content":"说一个字"}],"max_tokens":10}' \ + --connect-timeout 10 2>/dev/null) + if echo "$RESP" | grep -q '"choices"'; then + echo "✅ 可用" + else + echo "❌ 不可用: $(echo $RESP | head -c 100)" + fi + fi + + # 通义千问 + if [[ -n "$QIANWEN_API_KEY" ]]; then + echo -n " 通义千问: " + RESP=$(curl -s -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer $QIANWEN_API_KEY" \ + -d '{"model":"qwen-plus","messages":[{"role":"user","content":"说一个字"}],"max_tokens":10}' \ + --connect-timeout 10 2>/dev/null) + if echo "$RESP" | grep -q '"choices"'; then + echo "✅ 可用" + else + echo "❌ 不可用: $(echo $RESP | head -c 100)" + fi + fi + + # COS + if [[ -n "$COS_SECRET_ID" && -n "$COS_SECRET_KEY" ]]; then + echo -n " COS存储桶: " + RESP=$(curl -s -o /dev/null -w "%{http_code}" \ + "https://sy-finetune-corpus-1317346199.cos.ap-guangzhou.myqcloud.com/" \ + -H "Authorization: COS $COS_SECRET_ID:$COS_SECRET_KEY" \ + --connect-timeout 10 2>/dev/null) + echo "HTTP $RESP" + fi + + # 新加坡大脑服务器 + if [[ -n "$SG_BRAIN_HOST" ]]; then + echo -n " 新加坡大脑: " + RESP=$(curl -s -o /dev/null -w "%{http_code}" \ + "http://$SG_BRAIN_HOST:3000/" \ + --connect-timeout 5 2>/dev/null) + if [[ "$RESP" == "000" ]]; then + echo "不可达 (可能需要SSH密钥)" + else + echo "HTTP $RESP" + fi + fi + + echo "" + echo "═════════════════════════" + echo "测试完成" + echo "═════════════════════════" diff --git a/.gitea/workflows/test-secrets.yaml b/.gitea/workflows/test-secrets.yaml new file mode 100644 index 0000000..0fe0940 --- /dev/null +++ b/.gitea/workflows/test-secrets.yaml @@ -0,0 +1,109 @@ +# 光湖 · Secrets连通测试 +name: Secrets测试 + +on: + workflow_dispatch: + push: + paths: + - '.gitea/workflows/test-secrets.yaml' + - '.forgejo/workflows/test-secrets.yaml' + +jobs: + test-secrets: + runs-on: ubuntu + steps: + - name: 测试密钥可用性 + env: + DEEPSEEK_API_KEY: ${{ secrets.DEEPSEEK_API_KEY }} + QIANWEN_API_KEY: ${{ secrets.QIANWEN_API_KEY }} + ZY_REPO_TOKEN: ${{ secrets.ZY_REPO_TOKEN }} + COS_SECRET_ID: ${{ secrets.COS_SECRET_ID }} + COS_SECRET_KEY: ${{ secrets.COS_SECRET_KEY }} + SG_BRAIN_HOST: ${{ secrets.SG_BRAIN_HOST }} + SG_BRAIN_USER: ${{ secrets.SG_BRAIN_USER }} + SG_BRAIN_KEY: ${{ secrets.SG_BRAIN_KEY }} + run: | + echo "═══ Forgejo Secrets 连通测试 ═══" + echo "" + + # 检查每个secret是否有值(不显示值本身) + check_secret() { + local name=$1 + local val=$2 + if [[ -n "$val" && "$val" != "" ]]; then + local masked="${val:0:4}****${val: -4}" + echo " ✅ $name = $masked (长度: ${#val})" + else + echo " ❌ $name = (空)" + fi + } + + check_secret "DEEPSEEK_API_KEY" "$DEEPSEEK_API_KEY" + check_secret "QIANWEN_API_KEY" "$QIANWEN_API_KEY" + check_secret "ZY_REPO_TOKEN" "$ZY_REPO_TOKEN" + check_secret "COS_SECRET_ID" "$COS_SECRET_ID" + check_secret "COS_SECRET_KEY" "$COS_SECRET_KEY" + check_secret "SG_BRAIN_HOST" "$SG_BRAIN_HOST" + check_secret "SG_BRAIN_USER" "$SG_BRAIN_USER" + check_secret "SG_BRAIN_KEY" "$SG_BRAIN_KEY" + + echo "" + echo "═══ API连通测试 ═══" + + # DeepSeek + if [[ -n "$DEEPSEEK_API_KEY" ]]; then + echo -n " DeepSeek: " + RESP=$(curl -s -X POST https://api.deepseek.com/v1/chat/completions \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer $DEEPSEEK_API_KEY" \ + -d '{"model":"deepseek-chat","messages":[{"role":"user","content":"说一个字"}],"max_tokens":10}' \ + --connect-timeout 10 2>/dev/null) + if echo "$RESP" | grep -q '"choices"'; then + echo "✅ 可用" + else + echo "❌ 不可用: $(echo $RESP | head -c 100)" + fi + fi + + # 通义千问 + if [[ -n "$QIANWEN_API_KEY" ]]; then + echo -n " 通义千问: " + RESP=$(curl -s -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer $QIANWEN_API_KEY" \ + -d '{"model":"qwen-plus","messages":[{"role":"user","content":"说一个字"}],"max_tokens":10}' \ + --connect-timeout 10 2>/dev/null) + if echo "$RESP" | grep -q '"choices"'; then + echo "✅ 可用" + else + echo "❌ 不可用: $(echo $RESP | head -c 100)" + fi + fi + + # COS + if [[ -n "$COS_SECRET_ID" && -n "$COS_SECRET_KEY" ]]; then + echo -n " COS存储桶: " + RESP=$(curl -s -o /dev/null -w "%{http_code}" \ + "https://sy-finetune-corpus-1317346199.cos.ap-guangzhou.myqcloud.com/" \ + -H "Authorization: COS $COS_SECRET_ID:$COS_SECRET_KEY" \ + --connect-timeout 10 2>/dev/null) + echo "HTTP $RESP" + fi + + # 新加坡大脑服务器 + if [[ -n "$SG_BRAIN_HOST" ]]; then + echo -n " 新加坡大脑: " + RESP=$(curl -s -o /dev/null -w "%{http_code}" \ + "http://$SG_BRAIN_HOST:3000/" \ + --connect-timeout 5 2>/dev/null) + if [[ "$RESP" == "000" ]]; then + echo "不可达 (可能需要SSH密钥)" + else + echo "HTTP $RESP" + fi + fi + + echo "" + echo "═════════════════════════" + echo "测试完成" + echo "═════════════════════════"