Files
opencatd-open/dist/index.html
T
Sakurasan ef3025dd80 refactor: complete backend rewrite for multi-protocol proxy
Major rewrite of the Go backend to support:
- Three API format imports: openai, anthropic, compatible
- Three protocol conversions: Chat Completions, Responses, Messages
- Hub-and-spoke architecture with Chat as intermediate format

Deleted:
- opencat.go (old entry)
- store/, team/, pkg/team/, pkg/store/ (old data layer)
- internal/model/, internal/consts/ (old types)
- internal/service/team/, internal/controller/team/ (old handlers)
- llm/ (removed LLM client library, pure proxy mode)
- dist/, assets/ (old build artifacts)

Added:
- internal/store/ — 9 GORM models + multi-DB support
- internal/pkg/ — crypto (AES-GCM), apikey, jwt, ratelimit, resp, tokenizer
- internal/channel/ — channel selection, weighted LB, health checks
- internal/proxy/convert/ — 6 protocol conversion functions + SSE streaming
- internal/proxy/ — gateway with request dispatch and upstream selection
- internal/usage/ — async usage recorder with batch writes
- internal/api/ — management API (auth, users, keys, channels, models)
- Makefile for build/test/deploy

Fixed API to match frontend expectations:
- Login response wraps token in { data: { token } }
- GET /api/profile route added
- Profile response wraps user in { code, data }
- Role returned as number (10=admin, 1=user)
2026-08-30 11:49:31 +08:00

30 lines
1.4 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en" data-theme="emerald">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/assets/logo-BYScUf44.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="OpenTeam — an open-source, team-shared service compatible with the OpenAI API." />
<meta name="theme-color" content="#ffffff" />
<title>OpenTeam</title>
<script>
// 恢复主题偏好(light/dark/auto,auto 跟随系统),避免闪烁
try {
var __p = localStorage.getItem('theme') || 'auto'
var __dark = __p === 'dark' || (__p === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches)
document.documentElement.setAttribute('data-theme', __dark ? 'dark' : 'emerald')
} catch (e) {
document.documentElement.setAttribute('data-theme', 'emerald')
}
</script>
<script type="module" crossorigin src="/assets/index-BJCJroRI.js"></script>
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-DK3Fl9T5.js">
<link rel="modulepreload" crossorigin href="/assets/components-C0OpMyPR.js">
<link rel="stylesheet" crossorigin href="/assets/components-Bx5gkR8i.css">
<link rel="stylesheet" crossorigin href="/assets/index-DgCnyds5.css">
</head>
<body>
<div id="app"></div>
</body>
</html>