MCPcopy Create free account
hub / github.com/astercloud/aster / TestMessageConversion

Function TestMessageConversion

pkg/provider/openai_compatible_test.go:366–444  ·  view source on GitHub ↗

TestMessageConversion 测试消息转换

(t *testing.T)

Source from the content-addressed store, hash-verified

364
365// TestMessageConversion 测试消息转换
366func TestMessageConversion(t *testing.T) {
367 config := &types.ModelConfig{
368 Provider: "openai",
369 Model: "gpt-4o",
370 APIKey: "test-key",
371 }
372
373 provider, err := NewOpenAIProvider(config)
374 if err != nil {
375 t.Fatalf("Failed to create provider: %v", err)
376 }
377
378 // 类型断言获取基础 Provider
379 openaiProvider, ok := provider.(*OpenAIProvider)
380 if !ok {
381 t.Fatal("Failed to cast to OpenAIProvider")
382 }
383 baseProvider := openaiProvider.OpenAICompatibleProvider
384
385 // 测试简单消息
386 messages := []types.Message{
387 {
388 Role: types.RoleUser,
389 Content: "Hello",
390 },
391 }
392
393 converted := baseProvider.convertMessages(messages)
394 if len(converted) != 1 {
395 t.Errorf("Expected 1 message, got %d", len(converted))
396 }
397
398 if converted[0]["role"] != "user" {
399 t.Errorf("Expected role=user, got %s", converted[0]["role"])
400 }
401
402 if converted[0]["content"] != "Hello" {
403 t.Errorf("Expected content=Hello, got %s", converted[0]["content"])
404 }
405
406 // 测试多模态消息
407 messagesWithImage := []types.Message{
408 {
409 Role: types.RoleUser,
410 ContentBlocks: []types.ContentBlock{
411 &types.TextBlock{Text: "What's in this image?"},
412 &types.ImageContent{
413 Type: "url",
414 Source: "https://example.com/image.jpg",
415 Detail: "high",
416 },
417 },
418 },
419 }
420
421 converted = baseProvider.convertMessages(messagesWithImage)
422 if len(converted) != 1 {
423 t.Errorf("Expected 1 message, got %d", len(converted))

Callers

nothing calls this directly

Calls 2

NewOpenAIProviderFunction · 0.85
convertMessagesMethod · 0.45

Tested by

no test coverage detected