历史、函数选择、检索与编排:练习答案
练习解答
在正文 main 中增加:
python
missing=await k.invoke(p['find'],arguments=KernelArguments(query='unknown'))
assert missing.value==''
a2a=await k.invoke(p['find'],arguments=KernelArguments(query='A2A'))
assert '[doc-2]' in a2a.value and '[doc-1]' not in a2a.value引用标识必须来自实际检索结果。空检索是合法业务结果,应与后端连接异常分开。
向量与 Process 变体
vector.py在delete和get断言之后、仍处于async with内追加以下语句,运行完整文件:
python
after=await c.search(vector=[1.,0.],top=1)
remaining=[x async for x in after.results]
assert remaining[0].record.id=='B'B排名第一仅因为A被删,不等于B与退款相关;上层还需要经数据校准的拒答策略。
process_lab.py把最后一次KernelProcessEvent的data=2替换为data=3,并把末尾断言替换为:
python
assert state.status=='rejected' and state.committed==0其余初始prepare数据仍为2,因此恢复保存的是旧动作,批准其他数量不能通过。这个变体应输出status='rejected' amount=2 committed=0。