1
resposta

Estou fazendo o conteúdo desta aula, (4.5) conforme foi descrito pelo Professor, e o código simplesmente não roda

Tentei identificar onde está o erro, e não tem dado certo nenhuma opção para corrigir. Atualmente, ao tentar rodar o "selecionador_modelo.py", retorna a seguinte lista de erros.

Traceback (most recent call last):
  File "c:\curso_gemini\selecionador_modelo.py", line 29, in <module>
    qtd_tokens = modelo_flash.count_tokens(prompt_usuario)
  File "C:\curso_gemini\.venv\Lib\site-packages\google\generativeai\generative_models.py", line 424, in count_tokens
    return self._client.count_tokens(request, **request_options)
           ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\curso_gemini\.venv\Lib\site-packages\google\ai\generativelanguage_v1beta\services\generative_service\client.py", line 1505, in count_tokens
    response = rpc(
        request,
    ...<2 lines>...
        metadata=metadata,
    )
  File "C:\curso_gemini\.venv\Lib\site-packages\google\api_core\gapic_v1\method.py", line 131, in __call__
    return wrapped_func(*args, **kwargs)
  File "C:\curso_gemini\.venv\Lib\site-packages\google\api_core\retry\retry_unary.py", line 293, in retry_wrapped_func
    return retry_target(
        target,
    ...<3 lines>...
        on_error=on_error,
    )
  File "C:\curso_gemini\.venv\Lib\site-packages\google\api_core\retry\retry_unary.py", line 153, in retry_target
    _retry_error_helper(
    ~~~~~~~~~~~~~~~~~~~^
        exc,
        ^^^^
    ...<6 lines>...
        timeout,
        ^^^^^^^^
    )
    ^
  File "C:\curso_gemini\.venv\Lib\site-packages\google\api_core\retry\retry_base.py", line 212, in _retry_error_helper
    raise final_exc from source_exc
  File "C:\curso_gemini\.venv\Lib\site-packages\google\api_core\retry\retry_unary.py", line 144, in retry_target
    result = target()
  File "C:\curso_gemini\.venv\Lib\site-packages\google\api_core\timeout.py", line 130, in func_with_timeout
    return func(*args, **kwargs)
  File "C:\curso_gemini\.venv\Lib\site-packages\google\api_core\grpc_helpers.py", line 78, in error_remapped_callable
    raise exceptions.from_grpc_error(exc) from exc
google.api_core.exceptions.InvalidArgument: 400 * CountTokensRequest.model: unexpected model name format
* CountTokensRequest.generate_content_request.model: unexpected model name format

Se algum especialista puder me ajudar a resolver.

Código escrito da seguinte maneira


prompt_usuario = carrega('lista_de_compras_100_clientes.csv')

modelo_flash = genai.GenerativeModel (f'Models\{modelo}')
qtd_tokens = modelo_flash.count_tokens(prompt_usuario)

LIMITE_TOKENS = 3000

if qtd_tokens.total_tokens >= LIMITE_TOKENS:
    modelo = 'gemini-1.5-pro'

print (f'O modelo selecionado foi: {modelo}')

llm = genai.GenerativeModel (
    model_name=modelo,
    system_instruction=prompt_sistema
)

resposta = llm.generate_content(prompt_usuario)
print (f'Resposta: {resposta.text}')
1 resposta

Bom dia,

Já tentou trocar essa linha:

modelo_flash = genai.GenerativeModel(f'Models\{modelo}')

por:

modelo_flash = genai.GenerativeModel(modelo)

ou simplesmente definir o nome direto, assim:

modelo = 'gemini-1.5-flash'
modelo_flash = genai.GenerativeModel(modelo)

E, o ideal é verificar a quantidade de tokens antes de criar o modelo final que vai gerar a resposta. Já tentou reorganizar seu código assim?

prompt_usuario = carrega('lista_de_compras_100_clientes.csv')
modelo = 'gemini-1.5-flash'

modelo_flash = genai.GenerativeModel(modelo)
qtd_tokens = modelo_flash.count_tokens(prompt_usuario)

if qtd_tokens.total_tokens >= 3000:
    modelo = 'gemini-1.5-pro'

print(f'O modelo selecionado foi: {modelo}')

llm = genai.GenerativeModel(
    model_name=modelo,
    system_instruction=prompt_sistema
)

resposta = llm.generate_content(prompt_usuario)
print(f'Resposta: {resposta.text}')

Se ainda estiver dando erro depois disso, consegue colar aqui o valor que está em modelo na hora que o erro acontece?