Spaces:
Paused
Paused
sanbo commited on
Commit ·
184bb07
1
Parent(s): 5e0f525
update sth. at 2024-12-18 21:14:43
Browse files
README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
| 1 |
---
|
| 2 |
-
title:
|
| 3 |
-
emoji:
|
| 4 |
colorFrom: indigo
|
| 5 |
colorTo: blue
|
| 6 |
sdk: docker
|
| 7 |
pinned: true
|
| 8 |
app_port: 7860
|
| 9 |
-
short_description:
|
| 10 |
---
|
| 11 |
|
| 12 |
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
|
| 1 |
---
|
| 2 |
+
title: ddchat
|
| 3 |
+
emoji: 🦀
|
| 4 |
colorFrom: indigo
|
| 5 |
colorTo: blue
|
| 6 |
sdk: docker
|
| 7 |
pinned: true
|
| 8 |
app_port: 7860
|
| 9 |
+
short_description: ddchat
|
| 10 |
---
|
| 11 |
|
| 12 |
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
main.go
CHANGED
|
@@ -18,6 +18,7 @@ import (
|
|
| 18 |
"github.com/joho/godotenv"
|
| 19 |
)
|
| 20 |
|
|
|
|
| 21 |
var staticFiles embed.FS
|
| 22 |
|
| 23 |
type Config struct {
|
|
@@ -96,11 +97,20 @@ func main() {
|
|
| 96 |
r.GET("/", func(c *gin.Context) {
|
| 97 |
c.Redirect(http.StatusMovedPermanently, "/web")
|
| 98 |
})
|
|
|
|
|
|
|
|
|
|
| 99 |
// 3. 健康检查
|
| 100 |
r.GET("/ping", func(c *gin.Context) {
|
| 101 |
c.JSON(http.StatusOK, gin.H{"message": "pong"})
|
| 102 |
})
|
| 103 |
// 4. API 路由组
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 104 |
apiGroup := r.Group("/")
|
| 105 |
apiGroup.Use(authMiddleware()) // 可以选择性地提供 API 密钥
|
| 106 |
{
|
|
@@ -337,6 +347,43 @@ func handleCompletion(c *gin.Context) {
|
|
| 337 |
}
|
| 338 |
}
|
| 339 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 340 |
func requestToken() (string, error) {
|
| 341 |
url := "https://duckduckgo.com/duckchat/v1/status"
|
| 342 |
client := &http.Client{
|
|
|
|
| 18 |
"github.com/joho/godotenv"
|
| 19 |
)
|
| 20 |
|
| 21 |
+
//go:embed web/*
|
| 22 |
var staticFiles embed.FS
|
| 23 |
|
| 24 |
type Config struct {
|
|
|
|
| 97 |
r.GET("/", func(c *gin.Context) {
|
| 98 |
c.Redirect(http.StatusMovedPermanently, "/web")
|
| 99 |
})
|
| 100 |
+
// r.GET("/", func(c *gin.Context) {
|
| 101 |
+
// c.JSON(http.StatusOK, gin.H{"message": "API 服务运行中~"})
|
| 102 |
+
// })
|
| 103 |
// 3. 健康检查
|
| 104 |
r.GET("/ping", func(c *gin.Context) {
|
| 105 |
c.JSON(http.StatusOK, gin.H{"message": "pong"})
|
| 106 |
})
|
| 107 |
// 4. API 路由组
|
| 108 |
+
// authorized := r.Group("/")
|
| 109 |
+
// authorized.Use(authMiddleware())
|
| 110 |
+
// {
|
| 111 |
+
// authorized.GET("/hf/v1/models", handleModels)
|
| 112 |
+
// authorized.POST("/hf/v1/chat/completions", handleCompletion)
|
| 113 |
+
// }
|
| 114 |
apiGroup := r.Group("/")
|
| 115 |
apiGroup.Use(authMiddleware()) // 可以选择性地提供 API 密钥
|
| 116 |
{
|
|
|
|
| 347 |
}
|
| 348 |
}
|
| 349 |
|
| 350 |
+
//func requestToken() (string, error) {
|
| 351 |
+
// req, err := http.NewRequest("GET", "https://duckduckgo.com/duckchat/v1/status", nil)
|
| 352 |
+
// if err != nil {
|
| 353 |
+
// return "", fmt.Errorf("创建请求失败: %v", err)
|
| 354 |
+
// }
|
| 355 |
+
// for k, v := range config.FakeHeaders {
|
| 356 |
+
// req.Header.Set(k, v)
|
| 357 |
+
// }
|
| 358 |
+
// req.Header.Set("x-vqd-accept", "1")
|
| 359 |
+
//
|
| 360 |
+
// client := &http.Client{
|
| 361 |
+
// Timeout: 10 * time.Second,
|
| 362 |
+
// }
|
| 363 |
+
//
|
| 364 |
+
// log.Println("发送 token 请求")
|
| 365 |
+
// resp, err := client.Do(req)
|
| 366 |
+
// if err != nil {
|
| 367 |
+
// return "", fmt.Errorf("请求失败: %v", err)
|
| 368 |
+
// }
|
| 369 |
+
// defer resp.Body.Close()
|
| 370 |
+
//
|
| 371 |
+
// if resp.StatusCode != http.StatusOK {
|
| 372 |
+
// bodyBytes, _ := io.ReadAll(resp.Body)
|
| 373 |
+
// bodyString := string(bodyBytes)
|
| 374 |
+
// log.Printf("requestToken: 非200响应: %d, 内容: %s\n", resp.StatusCode, bodyString)
|
| 375 |
+
// return "", fmt.Errorf("非200响应: %d, 内容: %s", resp.StatusCode, bodyString)
|
| 376 |
+
// }
|
| 377 |
+
//
|
| 378 |
+
// token := resp.Header.Get("x-vqd-4")
|
| 379 |
+
// if token == "" {
|
| 380 |
+
// return "", errors.New("响应中未包含x-vqd-4头")
|
| 381 |
+
// }
|
| 382 |
+
//
|
| 383 |
+
// // log.Printf("获取到的 token: %s\n", token)
|
| 384 |
+
// return token, nil
|
| 385 |
+
//}
|
| 386 |
+
|
| 387 |
func requestToken() (string, error) {
|
| 388 |
url := "https://duckduckgo.com/duckchat/v1/status"
|
| 389 |
client := &http.Client{
|