Claude Sonnet может позвонить инструменту только один раз за разPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Claude Sonnet может позвонить инструменту только один раз за раз

Сообщение Anonymous »

Я тестирую функцию вызова возможности Claude Sonnet 3.7, но он может вызвать инструмент только один раз, прежде чем он ответит на клиент. < /p>
Вот мой код: < /p>

Код: Выделить всё

from llama_index.core.program.function_program import FunctionCallingProgram
from llama_index.llms.anthropic import Anthropic
from llama_index.core import PromptTemplate

class ObjectInstance(BaseModel):
type: str = Field(
...,
description="The category or class of the object extracted from the text. Must exactly match one of the predefined object types provided.",
)
name: str = Field(
...,
description="The exact name of the object as it appears in the text in upper case.",
)
description: str = Field(
...,
description="Information about the object from the text it is extracted from",
)

test_prompt = PromptTemplate(
"""
Task Description:

From a given text, extract one or more objects that match the object type provided.
For each object, call the provided tool to format the output.

OBject Types and Descriptions:

Entity Type 1: PERSON
Description: A name of a person
Entity Type 2: CITY NAME
Description: A name of a city

Text:

{content}
"""
)

llm = Anthropic(model = "claude-3-7-sonnet-20250219")

program = FunctionCallingProgram.from_defaults(
output_cls=ObjectInstance,
prompt=test_prompt,
llm=llm,
allow_parallel_tool_calls=True,
)

content = "John Doe is a person who lives in San Francisco."
output = program(content=content)

# It only extracts
# Name: JOHN DOE
# Type: PERSON

# It should extract this as well
# Name: San Francisco
# Type: CITY NAME
Я также пытался использовать structured_predict и get_function_tool , но оба не удались, что приводит к извлечению только одного объекта.
Моя попытка № 2
response = llm.structured_predict(
output_cls, prompt, content=content, allow_parallel_tool_calls=True
)
< /code>
Моя попытка № 3 < /p>
from llama_index.core.program.function_program import get_function_tool

tool = get_function_tool(output_cls)

resp = llm.chat_with_tools(
[tool],
user_msg=prompt.format(content=content),
allow_parallel_tool_calls=True,
)

tool_calls = llm.get_tool_calls_from_response(
resp, error_on_no_tool_calls=False
)
< /code>
Для одного и того же кода и подсказки как GPT-4O, и Mistral-Large смогли позвонить в инструмент несколько раз. Только антроп Клод не может этого достичь. Интересно, что я что -то упускаю.

Подробнее здесь: https://stackoverflow.com/questions/794 ... -at-a-time
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • AWS Bedrock Claude Sonnet 3.5 с изображением и системной подсказкой
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • AWS Bedrock Claude Sonnet 3.5 с изображением и системной подсказкой
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Claude/Sonnet Python API - больше токенов замораживает, меньше токенов усечны
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Claude/Sonnet Python API - больше токенов замораживает, меньше токенов усечны
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Рекомендация по инструменту для тестирования и сравнения ответов API [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»