new-api 代码学习
new-api:新一代大模型网关与AI资产管理系统.
程序入口
程序入口:main.go
embed 指令
//go:embed web/dist
var buildFS embed.FS
embed.FS 是一个文件系统,用来嵌入整个目录。
这段代码表示将当前目录下的 web/dist 目录及其所有内容嵌入最终二进制文件。
//go:embed web/dist/index.html
var indexPage []byte
这里直接嵌入单个 HTML 文件到字节切片中, 适合快速访问单个文件,比如作为模板加载或者直接返回给客户端。
读取配置文件
err := godotenv.Load(".env")
if err != nil {
common.SysLog("Support for .env file is disabled")
}
godotenv.Load(".env") 用于加载 .env 文件,将配置读取到环境变量中(通过 os.Getenv("xxx") 来获取)。
命令行参数读取
common/init.go
使用到的包。 flag、log、os、path/filepath.
- flag 用于解析命令行参数。
- log 记录日志
- os 读取环境变量和读取文件
- path/filepath 跨平台文件路径处理
flag 解析命令行参数
flag.Int、flag.String、flag.Bool 返回值是一个指针类型