相似性(嵌入)
similar
断言检查 LLM 输出的嵌入是否在语义上与预期值相似,使用余弦相似度阈值。
默认情况下,嵌入是通过 OpenAI 的 text-embedding-3-large
模型计算的。
示例:
assert:
- type: similar
value: '预期的输出'
threshold: 0.8
如果你提供一个值数组,测试将通过,如果它与至少一个值相似:
assert:
- type: similar
value:
- 预期的输出
- 预期输出
- 预期...输出
threshold: 0.8
覆盖提供者
默认情况下,similar
将使用 OpenAI。要指定创建嵌入的模型,请执行以下操作之一:
-
使用
test.options
或defaultTest.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 -
在每个断言的基础上设置
assertion.provider
。例如:tests:
assert:
- type: similar
value: Hello world
provider: huggingface:sentence-similarity:sentence-transformers/all-MiniLM-L6-v2