lib/stubidity.ex
defmodule Stubidity do
@moduledoc """
A plug that stubs popular foundation model APIs for development and testing
purposes.
"""
use Plug.Router
plug(:match)
plug(Plug.Parsers,
parsers: [:json],
pass: ["application/json"],
json_decoder: Jason
)
plug(:dispatch)
post "/v1/chat/completions" do
Stubidity.OpenAI.ChatCompletion.call(conn)
end
post "/v1/completions" do
Stubidity.OpenAI.Completion.call(conn)
end
post "/v1/embeddings" do
Stubidity.OpenAI.Embedding.call(conn)
end
post "/v1/engines/:model" do
Stubidity.OpenAI.Embedding.call(conn)
end
match _ do
conn |> send_resp(404, "not found")
end
end