defmodule Instructor.MixProject do use Mix.Project @external_resource "README.md" @version "README.md" |> File.read!() |> then(&Regex.run(~r/{:instructor, "~> (\d+\.\d+\.\d+)"}/, &1)) |> List.last() def project do [ app: :instructor, version: @version, elixir: "~> 1.15", start_permanent: Mix.env() == :prod, deps: deps(), elixirc_paths: elixirc_paths(Mix.env()), description: description(), # Docs name: "Instructor", source_url: "https://github.com/thmsmlr/instructor_ex", homepage_url: "https://github.com/thmsmlr/instructor_ex", docs: [ main: "Instructor", extras: [ "pages/philosophy.md", "pages/introduction-to-instructor.livemd", "pages/llama-cpp.livemd", "pages/cookbook/text-classification.livemd", "pages/cookbook/extract-action-items-from-meeting-transcripts.livemd", "pages/cookbook/text-to-dataframes.livemd" ], groups_for_extras: [ Cookbook: ~r"pages/cookbook/.*\.(md|livemd)" ], before_closing_body_tag: &before_closing_body_tag/1 ], package: package() ] end defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] # Run "mix help compile.app" to learn about applications. def application do [ extra_applications: [:logger] ] end defp description do "Structured prompting for OpenAI and OSS LLMs" end defp package do [ maintainers: ["Thomas Millar"], licenses: ["MIT"], links: %{ "GitHub" => "https://github.com/thmsmlr/instructor_ex" } ] end def before_closing_body_tag(:html) do """ """ end def before_closing_body_tag(_), do: "" # Run "mix help deps" to learn about dependencies. defp deps do [ {:ecto, "~> 3.11"}, {:openai, "~> 0.6.0"}, {:jason, "~> 1.4.0"}, {:req, "~> 0.4.0"}, {:jaxon, "~> 2.0"}, {:ex_doc, "~> 0.31", only: :dev, runtime: false}, {:mox, "~> 1.1.0", only: :test} ] end end