feat: schedule task

This commit is contained in:
Acbox
2026-01-30 23:31:43 +08:00
parent 0273b45141
commit ba34fb156d
28 changed files with 1674 additions and 43 deletions
+3 -8
View File
@@ -131,7 +131,7 @@ func (r *Resolver) Chat(ctx context.Context, req ChatRequest) (ChatResponse, err
}, nil
}
func (r *Resolver) TriggerSchedule(ctx context.Context, userID string, schedule SchedulePayload) error {
func (r *Resolver) TriggerSchedule(ctx context.Context, userID string, schedule SchedulePayload, token string) error {
if strings.TrimSpace(userID) == "" {
return fmt.Errorf("user id is required")
}
@@ -180,7 +180,7 @@ func (r *Resolver) TriggerSchedule(ctx context.Context, userID string, schedule
Schedule: schedule,
}
resp, err := r.postSchedule(ctx, payload, "")
resp, err := r.postSchedule(ctx, payload, token)
if err != nil {
return err
}
@@ -482,12 +482,7 @@ func (r *Resolver) storeHistory(ctx context.Context, userID, query string, respo
if strings.TrimSpace(query) == "" && len(responseMessages) == 0 {
return nil
}
userMessage := GatewayMessage{
"role": "user",
"content": query,
}
messages := append([]GatewayMessage{userMessage}, responseMessages...)
payload, err := json.Marshal(messages)
payload, err := json.Marshal(responseMessages)
if err != nil {
return err
}
+10
View File
@@ -11,6 +11,7 @@ type GatewayMessage map[string]interface{}
type ChatRequest struct {
UserID string `json:"-"`
Token string `json:"-"`
Query string `json:"query"`
Model string `json:"model,omitempty"`
Provider string `json:"provider,omitempty"`
@@ -30,3 +31,12 @@ type ChatResponse struct {
}
type StreamChunk = json.RawMessage
type SchedulePayload struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
Pattern string `json:"pattern"`
MaxCalls *int `json:"maxCalls,omitempty"`
Command string `json:"command"`
}