maritaca-ai / maritalk-api

Code and documentation for the MariTalk API
https://docs.maritaca.ai
MIT License
246 stars 12 forks source link

Intregrações para utilização de tools não disponíveis #121

Open math-sasso opened 2 weeks ago

math-sasso commented 2 weeks ago

O modelo ChatMaritalk não tem as mesmas integrações que o modelo ChatOpenai tem. A comunidade está usando muito LangGraph e LCEL e uma troca GPT4 -> Sabia3 está muito dificil sem que haja essa integração. Eu notei que falta a função bind_tools, mas acho que vocês precisam verificar e criar uma classe que suporte essa nova estrutuara dentro do langchain.

src/workflows/ai_workflows/ai_chatbot_checkpointer_workflow.py:118: in run
    self.setup_graph()
src/workflows/ai_workflows/ai_chatbot_checkpointer_workflow.py:91: in setup_graph
    assistant_runnable = self.primary_assistant_prompt | self.llm.bind_tools(
.venv/lib/python3.10/site-packages/langchain_core/language_models/chat_models.py:1119: in bind_tools
    raise NotImplementedError()
E   NotImplementedError
rodrigo-f-nogueira commented 1 week ago

Olá @math-sasso, obrigado por levantar esse problema. Vamos fazer essa integração, mas até lá, como a nossa API é compatível com a da Open AI, basta trocar o endpoint url para https://chat.maritaca.ai/api que já deveria funcionar o bind_tools. Por favor, nos avise se isso resolve?

math-sasso commented 1 week ago

isso foi o que eu tentei

llm = ChatOpenAI(
            model="sabia-3"
            api_key=os.environ["MARITACA__API_KEY""], 
            base_url="https://chat.maritaca.ai/api"
        )

O mesmo codigo que roda com a OpenAI da erros que parecem ser de integração.

rc/workflows/ai_workflows/ai_chatbot_checkpointer_workflow.py:111: in run
    return self.execute_graph()
src/workflows/ai_workflows/ai_chatbot_checkpointer_workflow.py:101: in execute_graph
    for event in events:
.venv/lib/python3.10/site-packages/langgraph/pregel/__init__.py:1278: in stream
    for _ in runner.tick(
.venv/lib/python3.10/site-packages/langgraph/pregel/runner.py:52: in tick
    run_with_retry(t, retry_policy)
.venv/lib/python3.10/site-packages/langgraph/pregel/retry.py:29: in run_with_retry
    task.proc.invoke(task.input, config)
.venv/lib/python3.10/site-packages/langgraph/utils/runnable.py:385: in invoke
    input = context.run(step.invoke, input, config, **kwargs)
.venv/lib/python3.10/site-packages/langgraph/utils/runnable.py:167: in invoke
    ret = context.run(self.func, input, **kwargs)
src/workflows/agents/assistant.py:20: in __call__
    result = self.runnable.invoke(state)
.venv/lib/python3.10/site-packages/langchain_core/runnables/base.py:3022: in invoke
    input = context.run(step.invoke, input, config)
.venv/lib/python3.10/site-packages/langchain_core/runnables/base.py:5343: in invoke
    return self.bound.invoke(
.venv/lib/python3.10/site-packages/langchain_core/language_models/chat_models.py:284: in invoke
    self.generate_prompt(
.venv/lib/python3.10/site-packages/langchain_core/language_models/chat_models.py:784: in generate_prompt
    return self.generate(prompt_messages, stop=stop, callbacks=callbacks, **kwargs)
.venv/lib/python3.10/site-packages/langchain_core/language_models/chat_models.py:641: in generate
    raise e
.venv/lib/python3.10/site-packages/langchain_core/language_models/chat_models.py:631: in generate
    self._generate_with_cache(
.venv/lib/python3.10/site-packages/langchain_core/language_models/chat_models.py:853: in _generate_with_cache
    result = self._generate(
.venv/lib/python3.10/site-packages/langchain_openai/chat_models/base.py:670: in _generate
    response = self.client.create(**payload)
.venv/lib/python3.10/site-packages/openai/_utils/_utils.py:274: in wrapper
    return func(*args, **kwargs)
.venv/lib/python3.10/site-packages/openai/resources/chat/completions.py:704: in create
    return self._post(
.venv/lib/python3.10/site-packages/openai/_base_client.py:1268: in post
    return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
.venv/lib/python3.10/site-packages/openai/_base_client.py:945: in request
    return self._request(
.venv/lib/python3.10/site-packages/openai/_base_client.py:1049: in _request
    raise self._make_status_error_from_response(err.response) from None
E   openai.UnprocessableEntityError: Error code: 422 - {'detail': [{'loc': ['body', 'messages', 6, 'content'], 'msg': 'none is not an allowed value', 'type': 'type_error.none.not_allowed'}, {'loc': ['body', 'messages', 12, 'content'], 'msg': 'none is not an allowed value', 'type': 'type_error.none.not_allowed'}, {'loc': ['body', 'messages'], 'msg': 'str type expected', 'type': 'type_error.str'}]}