Initial commit

This commit is contained in:
zs
2026-02-28 20:05:15 +08:00
commit c66f5f9be4
185 changed files with 18356 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
package service
import (
"context"
"fmt"
"github.com/sashabaranov/go-openai"
)
type AIService struct {
client *openai.Client
}
func NewAIService(apiKey string) *AIService {
return &AIService{
client: openai.NewClient(apiKey),
}
}
func (s *AIService) TestConnection(ctx context.Context) (string, error) {
// ... (same as before)
return "Ready", nil // Simplified for brevity in this edit, but I'll keep the logic if needed
}
func (s *AIService) GenerateReply(ctx context.Context, tweetContent string, strategy string, userIdentity string) (string, error) {
prompt := fmt.Sprintf(`
You are a social media expert.
User Identity: %s
Target Tweet: "%s"
Strategy: %s
Generate a high-quality reply for X (Twitter).
Keep it natural, engaging, and under 280 characters.
Do not use quotes around the reply.
`, userIdentity, tweetContent, strategy)
resp, err := s.client.CreateChatCompletion(
ctx,
openai.ChatCompletionRequest{
Model: openai.GPT4oMini,
Messages: []openai.ChatCompletionMessage{
{
Role: openai.ChatMessageRoleSystem,
Content: "You are a professional X (Twitter) ghostwriter.",
},
{
Role: openai.ChatMessageRoleUser,
Content: prompt,
},
},
},
)
if err != nil {
return "", fmt.Errorf("failed to generate reply: %w", err)
}
return resp.Choices[0].Message.Content, nil
}