dvcrn / chatgpt-ui

ChatGPT UI with auth, OpenAI, Claude, Gemini support, written in Elixir + LiveView
MIT License
91 stars 18 forks source link

Question: #11

Closed francoabaroa closed 10 months ago

francoabaroa commented 10 months ago

https://github.com/dvcrn/chatgpt-ui/blob/04b5854756a40fd9e56d78c1ea67d99b81ac4d27/lib/chatgpt/openai.ex#L16

I have a question regarding

  defp new_msg(m) do
    %ExOpenAI.Components.ChatCompletionRequestMessage{
      content: m,
      role: :user,
      name: "user"
    }
  end

  @spec role(String.t()) :: atom()
  defp role(r) when is_binary(r), do: String.to_atom(r)
  @spec role(atom()) :: atom()
  defp role(r) when is_atom(r), do: r

  @spec to_domain(ExOpenAI.Components.ChatCompletionResponseMessage.t()) :: Message.t()
  defp to_domain(msg) do
    %Message{
      content: msg.content,
      sender: role(msg.role),
      id: 0
    }
  end

  @spec from_domain(Message.t()) :: ExOpenAI.Components.ChatCompletionRequestMessage.t()
  defp from_domain(msg) do
    %ExOpenAI.Components.ChatCompletionRequestMessage{
      content: msg.content,
      role: role(msg.sender)
    }
  end

It should now be using either ChatCompletionRequestUserMessage or ChatCompletionRequestAssistantMessage instead of ChatCompletionRequestMessage right?

dvcrn commented 10 months ago

Oh yes, you’re correct. This changed in the latest ex_openai due to OpenAI API specification change

francoabaroa commented 10 months ago

Sweet thanks!