Skip to main content

相似性(嵌入)

similar 断言检查 LLM 输出的嵌入是否在语义上与预期值相似,使用余弦相似度阈值。

默认情况下,嵌入是通过 OpenAI 的 text-embedding-3-large 模型计算的。

示例:

assert:
- type: similar
value: '预期的输出'
threshold: 0.8

如果你提供一个值数组,测试将通过,如果它与至少一个值相似:

assert:
- type: similar
value:
- 预期的输出
- 预期输出
- 预期...输出
threshold: 0.8

覆盖提供者

默认情况下,similar 将使用 OpenAI。要指定创建嵌入的模型,请执行以下操作之一:

  1. 使用 test.optionsdefaultTest.options 在整个测试套件中覆盖提供者。例如:

    defaultTest:
    options:
    provider:
    embedding:
    id: azureopenai:embedding:text-embedding-ada-002
    config:
    apiHost: xxx.openai.azure.com
    tests:
    assert:
    - type: similar
    value: Hello world
  2. 在每个断言的基础上设置 assertion.provider。例如:

    tests:
    assert:
    - type: similar
    value: Hello world
    provider: huggingface:sentence-similarity:sentence-transformers/all-MiniLM-L6-v2