mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-09-13 22:53:37 +00:00
Some checks are pending
Build and Release / Determine run mode (push) Waiting to run
Build and Release / Sync Flatpak repo (push) Blocked by required conditions
Build and Release / Collect Flatpak artifacts (push) Blocked by required conditions
Build and Release / Verify (push) Waiting to run
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-apple-darwin, osx-arm64, macos-latest, aarch64-apple-darwin, dmg,app,updater, dmg) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-pc-windows-msvc.exe, win-arm64, windows-latest, aarch64-pc-windows-msvc, nsis,updater, nsis) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-unknown-linux-gnu, linux-arm64, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, appimage,updater, appimage) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-apple-darwin, osx-x64, macos-latest, x86_64-apple-darwin, dmg,app,updater, dmg) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-pc-windows-msvc.exe, win-x64, windows-latest, x86_64-pc-windows-msvc, nsis,updater, nsis) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-unknown-linux-gnu, linux-x64, ubuntu-22.04, x86_64-unknown-linux-gnu, appimage,updater, appimage) (push) Blocked by required conditions
Build and Release / Prepare & create release (push) Blocked by required conditions
Build and Release / Publish release (push) Blocked by required conditions
59 lines
2.8 KiB
C#
59 lines
2.8 KiB
C#
using AIStudio.Provider;
|
|
|
|
namespace AIStudio.Models.Kinds;
|
|
|
|
/// <summary>
|
|
/// The models which turn text into a vector, whoever built them.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Everything in this folder answers one question: what is a model made for, as opposed to what can
|
|
/// it do. The two used to be answered by two different pieces of code walking the same name, and
|
|
/// before that by every provider carrying a list of name fragments of its own -- lists which
|
|
/// disagreed, so that nomic-embed-text was an embedding model at one provider and a chat model at
|
|
/// the next.
|
|
///
|
|
/// These are modifiers rather than selectors, and that is the whole trick. A model keeps the family
|
|
/// it belongs to and this only says what it is for: llama-guard stays a Llama, and an embedding
|
|
/// checkpoint of a family we have rules for keeps those rules. Written as selectors they would have
|
|
/// to win against the family, and "embed" against "llama" is a contest neither of them should be
|
|
/// in -- both are five characters of substring, which is a tie, which is an error.
|
|
///
|
|
/// What none of them may become is a place for provider-specific knowledge. That "codestral" fills
|
|
/// in the middle at Mistral is true for Mistral; such a statement belongs to the family.
|
|
/// </remarks>
|
|
public sealed class EmbeddingModelsFamily : ModelFamily
|
|
{
|
|
/// <inheritdoc />
|
|
public override ModelVendor Vendor => ModelVendor.UNKNOWN;
|
|
|
|
/// <inheritdoc />
|
|
public override ModelSource Source => new("https://huggingface.co/models?pipeline_tag=feature-extraction", new DateOnly(2026, 9, 12), "Ported from the embedding markers of Provider/ModelKindExtensions.cs. The e5 line says it in its own family, so it is not repeated here.");
|
|
|
|
/// <inheritdoc />
|
|
protected override void Declare(ModelFamilyBuilder builder)
|
|
{
|
|
builder.Modifier("embed").AsSubstring().Kind(ModelKind.EMBEDDING);
|
|
|
|
builder.Modifier("bge").AsSubstring().Inherits();
|
|
|
|
builder.Modifier("mpnet").AsSubstring().Inherits();
|
|
|
|
builder.Modifier("paraphrase").AsSubstring().Inherits();
|
|
|
|
//
|
|
// The one marker which was really an organization rather than a model. It still holds where
|
|
// a name arrives whole, but the host takes the organization off before any rule sees the
|
|
// name, so the model this organization is known for has to stand next to it: all-MiniLM-L6-v2
|
|
// says nothing about embedding except through who published it.
|
|
//
|
|
builder.Modifier("sentence-transformers").AsSubstring().Inherits();
|
|
|
|
builder.Modifier("minilm").AsSubstring().Inherits();
|
|
|
|
builder.Modifier("gritlm").AsSubstring().Inherits();
|
|
|
|
// General Text Embeddings, from Alibaba. Written as a name part rather than as a substring,
|
|
// because three letters appear inside far too many unrelated words:
|
|
builder.Modifier("gte").AsSegment().Inherits();
|
|
}
|
|
} |