• grok
    2024-12-02 来自美国
    我用的grok2,本节代码跑不通。需要清理输入。改动如下: ``` def clean_tool_input(func): """装饰器:清理传递给工具函数的输入""" @wraps(func) # 这会保留原始函数的元数据,包括 docstring def wrapper(input_str: str, *args, **kwargs): # 清理输入,只取第一行并去除空白字符 cleaned_input = input_str.split('\n')[0].strip() return func(cleaned_input, *args, **kwargs) return wrapper @tool @clean_tool_input def calculate(what: str) -> float: """Runs a calculation and returns the number - uses Python so be sure to use floating point syntax if necessary""" return eval(what) @tool @clean_tool_input def ask_fruit_unit_price(fruit: str) -> str: """Asks the user for the price of a fruit""" if fruit.casefold() == "apple": return "Apple unit price is 10/kg" elif fruit.casefold() == "banana": return "Banana unit price is 6/kg" else: return "{} unit price is 20/kg".format(fruit) ``` 完整代码在此:https://github.com/groklab/misc/blob/main/geektime-llm-zhengye-column/lec14.ipynb
    展开
    
    