Add fake llm provider
Change-Id: I7983796013f27e146506a42c8238b69a1838f1d9
diff --git a/server/test_fake_llm.go b/server/test_fake_llm.go
new file mode 100644
index 0000000..a322599
--- /dev/null
+++ b/server/test_fake_llm.go
@@ -0,0 +1,60 @@
+package main
+
+import (
+ "context"
+ "fmt"
+ "log"
+
+ "github.com/iomodo/staff/llm"
+ _ "github.com/iomodo/staff/llm/providers" // Auto-register providers
+)
+
+func main() {
+ // Create fake LLM config
+ config := llm.Config{
+ Provider: llm.ProviderFake,
+ APIKey: "fake-key",
+ BaseURL: "fake://test",
+ }
+
+ // Create provider
+ provider, err := llm.CreateProvider(config)
+ if err != nil {
+ log.Fatalf("Failed to create provider: %v", err)
+ }
+ defer provider.Close()
+
+ // Test chat completion
+ req := llm.ChatCompletionRequest{
+ Model: "fake-gpt-4",
+ Messages: []llm.Message{
+ {
+ Role: llm.RoleSystem,
+ Content: "You are a helpful AI assistant.",
+ },
+ {
+ Role: llm.RoleUser,
+ Content: "Create a solution for implementing user authentication",
+ },
+ },
+ MaxTokens: &[]int{4000}[0],
+ Temperature: &[]float64{0.3}[0],
+ }
+
+ fmt.Println("Testing Fake LLM Provider...")
+ fmt.Println("==========================")
+
+ resp, err := provider.ChatCompletion(context.Background(), req)
+ if err != nil {
+ log.Fatalf("Chat completion failed: %v", err)
+ }
+
+ fmt.Printf("Response ID: %s\n", resp.ID)
+ fmt.Printf("Model: %s\n", resp.Model)
+ fmt.Printf("Provider: %s\n", resp.Provider)
+ fmt.Printf("Usage: %+v\n", resp.Usage)
+ fmt.Println("\nGenerated Solution:")
+ fmt.Println("===================")
+ fmt.Println(resp.Choices[0].Message.Content)
+ fmt.Println("\n✅ Fake LLM Provider is working correctly!")
+}
\ No newline at end of file