Fix for module 'builtins' has no attribute 'instance_id, closes #1107

This commit is contained in:
Simon Willison 2025-05-27 13:13:13 -07:00
parent fe7a1f0ee7
commit 6bab712cdd
2 changed files with 35 additions and 12 deletions

View file

@ -862,19 +862,24 @@ class _BaseResponse:
for tool_result in self.prompt.tool_results:
instance_id = None
if tool_result.instance:
if not tool_result.instance.instance_id:
tool_result.instance.instance_id = (
db["tool_instances"]
.insert(
{
"plugin": tool.plugin,
"name": tool.name.split("_")[0],
"arguments": json.dumps(tool_result.instance._config),
}
try:
if not tool_result.instance.instance_id:
tool_result.instance.instance_id = (
db["tool_instances"]
.insert(
{
"plugin": tool.plugin,
"name": tool.name.split("_")[0],
"arguments": json.dumps(
tool_result.instance._config
),
}
)
.last_pk
)
.last_pk
)
instance_id = tool_result.instance.instance_id
instance_id = tool_result.instance.instance_id
except AttributeError:
pass
db["tool_results"].insert(
{
"response_id": response_id,

View file

@ -239,6 +239,24 @@ def test_default_tool_llm_version():
assert '"output": "{}"'.format(version("llm")) in result.output
def test_functions_tool_locals():
# https://github.com/simonw/llm/issues/1107
runner = CliRunner()
result = runner.invoke(
cli.cli,
[
"-m",
"echo",
"--functions",
"my_locals = locals",
"-T",
"llm_version",
json.dumps({"tool_calls": [{"name": "locals"}]}),
],
)
assert result.exit_code == 0
def test_default_tool_llm_time():
runner = CliRunner()
result = runner.invoke(