38 lines
926 B
Go
38 lines
926 B
Go
package main
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"data-terminal-cloud/internal/workflowbridge"
|
||
|
|
"log"
|
||
|
|
"net/http"
|
||
|
|
"os"
|
||
|
|
"strings"
|
||
|
|
"time"
|
||
|
|
)
|
||
|
|
|
||
|
|
func secret(name string) string {
|
||
|
|
if p := os.Getenv(name + "_FILE"); p != "" {
|
||
|
|
b, err := os.ReadFile(p)
|
||
|
|
if err != nil {
|
||
|
|
log.Fatal("secret file unavailable")
|
||
|
|
}
|
||
|
|
return strings.TrimSpace(string(b))
|
||
|
|
}
|
||
|
|
return strings.TrimSpace(os.Getenv(name))
|
||
|
|
}
|
||
|
|
func main() {
|
||
|
|
key, admin := secret("ARK_API_KEY"), secret("DIFY_BRIDGE_SECRET")
|
||
|
|
if key == "" || admin == "" {
|
||
|
|
log.Fatal("bridge credentials missing")
|
||
|
|
}
|
||
|
|
base := os.Getenv("ARK_BASE_URL")
|
||
|
|
if base == "" {
|
||
|
|
base = "https://ark.cn-beijing.volces.com/api/v3"
|
||
|
|
}
|
||
|
|
service, err := workflowbridge.NewArkService(admin, base, key)
|
||
|
|
if err != nil {
|
||
|
|
log.Fatal("model configuration invalid")
|
||
|
|
}
|
||
|
|
server := &http.Server{Addr: ":8188", Handler: service, ReadHeaderTimeout: 10 * time.Second, IdleTimeout: 30 * time.Second}
|
||
|
|
log.Fatal(server.ListenAndServe())
|
||
|
|
}
|