✓ PASS

any-llm 1.40.2

stream.utf8-split · ollama

Back to results · Scenario

Requirements

IdLevelStatusEvidence
text-reportedMUSTSATISFIEDtext.value="Café Zürich — καλημέρα! 東京で会いましょう 🌸🎉" (primary); truth.text="Café Zürich — καλημέρα! 東京で会いましょう 🌸🎉"
no-replacement-charsMUSTSATISFIEDtext.value="Café Zürich — καλημέρα! 東京で会いましょう 🌸🎉" (primary); U+FFFD count=0

What the provider sent

Finish
stop
Raw finish
stop
Text
Café Zürich — καλημέρα! 東京で会いましょう 🌸🎉
Tool calls
[]
Usage
{
  "alternatives": {},
  "cached_input": 0,
  "input": 35,
  "output": 22,
  "raw": {
    "eval_count": 22,
    "prompt_eval_cached_count": 0,
    "prompt_eval_count": 35
  },
  "reasoning": null,
  "total": 57
}
Stream completed
true
Error
null
Wire excerpt
status: 200
content-type: application/x-ndjson
body (chunks_b64):
eyJtb2RlbCI6InF3ZW4zLjU6MC44YiIsImNyZWF0ZWRfYXQiOiIyMDI2LTEwLTEyVDE5OjAxOjA1LjQxNjE4ODkzNVoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjoiQyJ9LCJkb25lIjpmYWxzZX0KeyJtb2RlbCI6InF3ZW4zLjU6MC44YiIsImNyZWF0ZWRfYXQiOiIyMDI2LTEwLTEyVDE5OjAxOjA1LjUzMDA3ODI0M1oiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjoiYWYifSwiZG9uZSI6ZmFsc2V9CnsibW9kZWwiOiJxd2VuMy41OjAuOGIiLCJjcmVhdGVkX2F0IjoiMjAyNi0xMC0xMlQxOTowMTowNS41MzAxMTE1NDZaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IsM=
qSJ9LCJkb25lIjpmYWxzZX0KeyJtb2RlbCI6InF3ZW4zLjU6MC44YiIsImNyZWF0ZWRfYXQiOiIyMDI2LTEwLTEyVDE5OjAxOjA1LjY0MzU2Mjk4NloiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjoiIFrDvHJpY2gifSwiZG9uZSI6ZmFsc2V9CnsibW9kZWwiOiJxd2VuMy41OjAuOGIiLCJjcmVhdGVkX2F0IjoiMjAyNi0xMC0xMlQxOTowMTowNS42NDM4Mzg5NjFaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IiDi
gJQifSwiZG9uZSI6ZmFsc2V9CnsibW9kZWwiOiJxd2VuMy41OjAuOGIiLCJjcmVhdGVkX2F0IjoiMjAyNi0xMC0xMlQxOTowMTowNS43NTg4MTc4MjRaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IiDO
us6xIn0sImRvbmUiOmZhbHNlfQp7Im1vZGVsIjoicXdlbjMuNTowLjhiIiwiY3JlYXRlZF9hdCI6IjIwMjYtMTAtMTJUMTk6MDE6MDUuNzU4ODc3MzA1WiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiLOu863In0sImRvbmUiOmZhbHNlfQp7Im1vZGVsIjoicXdlbjMuNTowLjhiIiwiY3JlYXRlZF9hdCI6IjIwMjYtMTAtMTJUMTk6MDE6MDUuNzU5MDk5NTJaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6Is68zq0ifSwiZG9uZSI6ZmFsc2V9CnsibW9kZWwiOiJxd2VuMy41OjAuOGIiLCJjcmVhdGVkX2F0IjoiMjAyNi0xMC0xMlQxOTowMTowNS44NzQzNjAyM1oiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50Ijoiz4HOsSJ9LCJkb25lIjpmYWxzZX0KeyJtb2RlbCI6InF3ZW4zLjU6MC44YiIsImNyZWF0ZWRfYXQiOiIyMDI2LTEwLTEyVDE5OjAxOjA1Ljg3NDQxNjI3NFoiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjoiISJ9LCJkb25lIjpmYWxzZX0KeyJtb2RlbCI6InF3ZW4zLjU6MC44YiIsImNyZWF0ZWRfYXQiOiIyMDI2LTEwLTEyVDE5OjAxOjA1Ljk4ODk1MDM5N1oiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjoiIOY=
nbHkuqwifSwiZG9uZSI6ZmFsc2V9CnsibW9kZWwiOiJxd2VuMy41OjAuOGIiLCJjcmVhdGVkX2F0IjoiMjAyNi0xMC0xMlQxOTowMTowNS45ODg5NzY0MDVaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IuOBpyJ9LCJkb25lIjpmYWxzZX0KeyJtb2RlbCI6InF3ZW4zLjU6MC44YiIsImNyZWF0ZWRfYXQiOiIyMDI2LTEwLTEyVDE5OjAxOjA1Ljk4OTA2MjQ3NloiLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50Ijoi5Lya44GEIn0sImRvbmUiOmZhbHNlfQp7Im1vZGVsIjoicXdlbjMuNTowLjhiIiwiY3JlYXRlZF9hdCI6IjIwMjYtMTAtMTJUMTk6MDE6MDYuMTA0MjA4MTNaIiwibWVzc2FnZSI6eyJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6IuOBvuOBl+OCh+OBhiJ9LCJkb25lIjpmYWxzZX0KeyJtb2RlbCI6InF3ZW4zLjU6MC44YiIsImNyZWF0ZWRfYXQiOiIyMDI2LTEwLTEyVDE5OjAxOjA2LjIxOTA2MjUyWiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIg8A==
n4y4In0sImRvbmUiOmZhbHNlfQp7Im1vZGVsIjoicXdlbjMuNTowLjhiIiwiY3JlYXRlZF9hdCI6IjIwMjYtMTAtMTJUMTk6MDE6MDYuMzM0MDgzOTQzWiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiLwn46JIn0sImRvbmUiOmZhbHNlfQp7Im1vZGVsIjoicXdlbjMuNTowLjhiIiwiY3JlYXRlZF9hdCI6IjIwMjYtMTAtMTJUMTk6MDE6MDYuMzM0MjM5Nzg0WiIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiIifSwiZG9uZSI6dHJ1ZSwiZG9uZV9yZWFzb24iOiJzdG9wIiwidG90YWxfZHVyYXRpb24iOjEzMTE0NTAwMzgsImxvYWRfZHVyYXRpb24iOjIxNzIyODQsInByb21wdF9ldmFsX2NvdW50IjozNSwicHJvbXB0X2V2YWxfY2FjaGVkX2NvdW50IjowLCJwcm9tcHRfZXZhbF9kdXJhdGlvbiI6MzgyNjQ5MDAwLCJldmFsX2NvdW50IjoyMiwiZXZhbF9kdXJhdGlvbiI6OTE3ODE0MDAwfQo=

What the library reported

Outcome
returned
Finish
{
  "raw": "stop",
  "source": "choices[0].finish_reason",
  "surface": "primary",
  "value": "stop"
}
Text
Value
Café Zürich — καλημέρα! 東京で会いましょう 🌸🎉
Surface
primary
Tool calls
[]
Usage
{
  "cached_input": null,
  "input": 35,
  "output": 22,
  "reasoning": null,
  "surface": {
    "cached_input": "absent",
    "input": "primary",
    "output": "primary",
    "reasoning": "absent",
    "total": "primary"
  },
  "total": 57
}
Stream
{
  "chunks_seen": 17,
  "completed": null,
  "used": true
}
Error
null
Unsupported reason
null
Full observation JSON
{
  "elapsed_ms": 156.69403038918972,
  "error": null,
  "finish": {
    "raw": "stop",
    "source": "choices[0].finish_reason",
    "surface": "primary",
    "value": "stop"
  },
  "format": "wiretruth.observation/v1",
  "library": {
    "api": "any_llm.completion",
    "language": "python",
    "name": "any-llm",
    "version": "1.40.2"
  },
  "notes": [],
  "outcome": "returned",
  "stream": {
    "chunks_seen": 17,
    "completed": null,
    "used": true
  },
  "structured": {
    "attempted": false,
    "returned_as_success": false,
    "value": null
  },
  "text": {
    "surface": "primary",
    "value": "Café Zürich — καλημέρα! 東京で会いましょう 🌸🎉"
  },
  "tool_calls": [],
  "unsupported_reason": null,
  "usage": {
    "cached_input": null,
    "input": 35,
    "output": 22,
    "reasoning": null,
    "surface": {
      "cached_input": "absent",
      "input": "primary",
      "output": "primary",
      "reasoning": "absent",
      "total": "primary"
    },
    "total": 57
  }
}

Fixture

derived ollama/stream.utf8-split

ProvenanceValue
Transformrechunk_inside_utf8
Source fixtureollama/stream.utf8
RationaleA network chunk boundary splits a multi-byte UTF-8 character.
Evidencehttps://github.com/langchain-ai/langchainjs/issues/5285

Reproduce

wiretruth serve ollama/stream.utf8-split

Plain-library snippet from the shim manifest.

any_llm.completion(model=model, provider='ollama', api_base=WIRETRUTH_BASE_URL_OLLAMA, api_key=WIRETRUTH_API_KEY)

Upstream

No matching upstream report.

History

VersionGrade
1.40.2✓ PASS
1.38.0✓ PASS
1.33.0✓ PASS