fix
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
package main
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
"github.com/descrybe/descrybe-v2/apps/api/internal/aiprovider"
|
||||
"github.com/descrybe/descrybe-v2/apps/api/internal/config"
|
||||
"github.com/descrybe/descrybe-v2/apps/api/internal/db"
|
||||
"github.com/descrybe/descrybe-v2/apps/api/internal/platformsettings"
|
||||
"github.com/descrybe/descrybe-v2/apps/api/internal/processing"
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
func main() {
|
||||
cfg, err := config.Load()
|
||||
if err != nil { panic(err) }
|
||||
ctx := context.Background()
|
||||
pool, err := db.NewPool(ctx, cfg.DatabaseURL, db.PoolOptions{
|
||||
MaxConns: 4, MinConns: 1, MaxConnLifetime: time.Hour, HealthCheckPeriod: 30*time.Second,
|
||||
})
|
||||
if err != nil { panic(err) }
|
||||
defer pool.Close()
|
||||
plat := platformsettings.NewService(pool, platformsettings.EnvConfig{
|
||||
AppEncryptionKey:cfg.AppEncryptionKey, CredentialsEncryptionKey:cfg.CredentialsEncryptionKey,
|
||||
TokenSigningSecret:cfg.TokenSigningSecret, DatabaseURL:cfg.DatabaseURL,
|
||||
OpenAIAPIKey:cfg.OpenAIAPIKey, OpenAIBaseURL:cfg.OpenAIBaseURL, OpenAIModel:cfg.OpenAIModel,
|
||||
})
|
||||
ai := aiprovider.NewService(pool, aiprovider.EnvConfig{
|
||||
AppEncryptionKey:cfg.AppEncryptionKey, CredentialsEncryptionKey:cfg.CredentialsEncryptionKey,
|
||||
TokenSigningSecret:cfg.TokenSigningSecret, DatabaseURL:cfg.DatabaseURL,
|
||||
OpenAIAPIKey:cfg.OpenAIAPIKey, OpenAIBaseURL:cfg.OpenAIBaseURL, OpenAIModel:cfg.OpenAIModel,
|
||||
})
|
||||
ai.Platform = plat
|
||||
companyID := uuid.MustParse("604f23a8-b66e-4b21-8b45-0d72b68f4790")
|
||||
c, mode, byok, err := ai.ResolveCompleterForRole(ctx, companyID, aiprovider.RoleProcessing)
|
||||
if err != nil { panic(err) }
|
||||
client := c.(*processing.OpenAIClient)
|
||||
fmt.Printf("base=%s model=%s mode=%s byok=%v mock=%v\n", client.BaseURL, client.Model, mode, byok, processing.IsMockOrLoopbackBaseURL(client.BaseURL))
|
||||
url := strings.TrimRight(client.BaseURL,"/")+"/models"
|
||||
for i:=1; i<=3; i++ {
|
||||
req,_ := http.NewRequestWithContext(ctx, "GET", url, nil)
|
||||
req.Header.Set("Authorization", "Bearer "+client.APIKey)
|
||||
start := time.Now()
|
||||
resp, err := http.DefaultClient.Do(req)
|
||||
elapsed := time.Since(start).Round(time.Millisecond)
|
||||
if err != nil { fmt.Printf("try%d err=%v elapsed=%s\n", i, err, elapsed); time.Sleep(2*time.Second); continue }
|
||||
b,_ := io.ReadAll(io.LimitReader(resp.Body, 240)); resp.Body.Close()
|
||||
fmt.Printf("try%d status=%d elapsed=%s body=%q\n", i, resp.StatusCode, elapsed, string(b))
|
||||
if resp.StatusCode == 200 { os.Exit(0) }
|
||||
time.Sleep(3*time.Second)
|
||||
}
|
||||
os.Exit(2)
|
||||
}
|
||||
Reference in New Issue
Block a user