Eai.Models (eai v0.1.9)

Copy Markdown

模型注册表查询接口。

所有模型定义集中在 config/models.exs,运行时通过本模块访问, 代码中不再出现任何硬编码的模型字符串。

快速查表

iex> Eai.Models.all()           # 全部模型条目
iex> Eai.Models.default()       # 列表第一个(系统默认)
iex> Eai.Models.get(:gpt4o)     # 按 :name atom 查找
iex> Eai.Models.names()         # 所有 name atom 列表
iex> Eai.Models.vision_models() # 标注了 vision: true 的条目

Summary

Functions

返回注册表中所有模型条目(顺序与 models.exs 定义一致)。

从条目中提取 API Key(读对应环境变量;nil 表示无需 key)。

返回默认模型(注册表第一个条目)。

返回第一个支持视觉的模型,找不到返回 nil。

按 :name atom 查找模型,找不到返回 nil。

按 :name atom 查找模型,找不到抛出 ArgumentError。

返回所有 :name atom 列表。

从条目中提取模型字符串、URL、provider 等字段,组装成 Direct.run/3 的 opts map。

返回所有标注了 vision: true 的模型条目。

Types

model_entry()

@type model_entry() :: keyword()

Functions

all()

@spec all() :: [model_entry()]

返回注册表中所有模型条目(顺序与 models.exs 定义一致)。

api_key(entry)

@spec api_key(model_entry()) :: String.t() | nil

从条目中提取 API Key(读对应环境变量;nil 表示无需 key)。

default()

@spec default() :: model_entry()

返回默认模型(注册表第一个条目)。

default_vision()

@spec default_vision() :: model_entry() | nil

返回第一个支持视觉的模型,找不到返回 nil。

get(name)

@spec get(atom() | nil) :: model_entry() | nil

按 :name atom 查找模型,找不到返回 nil。

get!(name)

@spec get!(atom()) :: model_entry()

按 :name atom 查找模型,找不到抛出 ArgumentError。

names()

@spec names() :: [atom()]

返回所有 :name atom 列表。

to_run_opts(entry)

@spec to_run_opts(model_entry()) :: map()

从条目中提取模型字符串、URL、provider 等字段,组装成 Direct.run/3 的 opts map。

vision_models()

@spec vision_models() :: [model_entry()]

返回所有标注了 vision: true 的模型条目。