xfms 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- xfms-0.1.0/LICENSE +21 -0
- xfms-0.1.0/NOTICE +62 -0
- xfms-0.1.0/PKG-INFO +253 -0
- xfms-0.1.0/README.md +218 -0
- xfms-0.1.0/pyproject.toml +60 -0
- xfms-0.1.0/setup.cfg +4 -0
- xfms-0.1.0/tests/test_client.py +220 -0
- xfms-0.1.0/xfms.egg-info/PKG-INFO +253 -0
- xfms-0.1.0/xfms.egg-info/SOURCES.txt +14 -0
- xfms-0.1.0/xfms.egg-info/dependency_links.txt +1 -0
- xfms-0.1.0/xfms.egg-info/entry_points.txt +2 -0
- xfms-0.1.0/xfms.egg-info/requires.txt +4 -0
- xfms-0.1.0/xfms.egg-info/top_level.txt +1 -0
- xfms-0.1.0/xfms_client/__init__.py +22 -0
- xfms-0.1.0/xfms_client/cli.py +213 -0
- xfms-0.1.0/xfms_client/client.py +241 -0
xfms-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Russ Wright / Visionairy
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
xfms-0.1.0/NOTICE
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
XFMS — Xpansion Framework Model Source (client library)
|
|
2
|
+
Copyright 2026 Russ Wright / Visionairy
|
|
3
|
+
|
|
4
|
+
The XFMS client library (this repository) is distributed under the
|
|
5
|
+
MIT License. See the LICENSE file for the full terms.
|
|
6
|
+
|
|
7
|
+
──────────────────────────────────────────────────────────────────────
|
|
8
|
+
What this repository contains
|
|
9
|
+
──────────────────────────────────────────────────────────────────────
|
|
10
|
+
|
|
11
|
+
This repository is a thin HTTP client and command-line tool for
|
|
12
|
+
calling the hosted XFMS API at https://xfms.vercel.app. It does not
|
|
13
|
+
contain the recommender engine, the score catalog, the catalog
|
|
14
|
+
ingestion pipeline, or the methodology implementation — those run
|
|
15
|
+
on the hosted service and are not open source.
|
|
16
|
+
|
|
17
|
+
──────────────────────────────────────────────────────────────────────
|
|
18
|
+
Patent notice
|
|
19
|
+
──────────────────────────────────────────────────────────────────────
|
|
20
|
+
|
|
21
|
+
XFMS is one module of the Xpansion Framework — a unified architecture
|
|
22
|
+
for governing AI-assisted work. The Xpansion Framework methods and
|
|
23
|
+
processes — including, without limitation:
|
|
24
|
+
|
|
25
|
+
- finite intent decomposition,
|
|
26
|
+
- code-enforced tool gating,
|
|
27
|
+
- binary terminal verification, and
|
|
28
|
+
- local-sovereign compounding memory
|
|
29
|
+
|
|
30
|
+
— are the subject of pending patent applications filed by Russ Wright
|
|
31
|
+
and Visionairy.
|
|
32
|
+
|
|
33
|
+
The MIT license granted in the LICENSE file applies to the client
|
|
34
|
+
library source code in this repository. It does NOT grant any rights,
|
|
35
|
+
express or implied, to:
|
|
36
|
+
|
|
37
|
+
- the Xpansion Framework patents, pending or granted
|
|
38
|
+
- the XFMS recommender engine
|
|
39
|
+
- the XFMS score catalog
|
|
40
|
+
- the catalog ingestion pipeline
|
|
41
|
+
- any other Xpansion Framework intellectual property beyond the
|
|
42
|
+
client code in this repository
|
|
43
|
+
|
|
44
|
+
──────────────────────────────────────────────────────────────────────
|
|
45
|
+
Trademarks
|
|
46
|
+
──────────────────────────────────────────────────────────────────────
|
|
47
|
+
|
|
48
|
+
"XFMS", "Xpansion Framework", "Visionairy", and related marks are
|
|
49
|
+
trademarks of Russ Wright / Visionairy. The MIT license does not
|
|
50
|
+
grant rights to use these marks, except as needed to accurately
|
|
51
|
+
identify the origin of the software.
|
|
52
|
+
|
|
53
|
+
──────────────────────────────────────────────────────────────────────
|
|
54
|
+
Contact
|
|
55
|
+
──────────────────────────────────────────────────────────────────────
|
|
56
|
+
|
|
57
|
+
For licensing questions, patent inquiries, or commercial use beyond
|
|
58
|
+
the MIT license terms, contact:
|
|
59
|
+
|
|
60
|
+
Russ Wright
|
|
61
|
+
russ@visionairy.biz
|
|
62
|
+
https://xpansion.dev
|
xfms-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: xfms
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Pick the right LLM for your task. Xpansion Framework Model Source — aggregates 8 independent benchmark sources via the hosted XFMS API. BYOK so your inference cost stays with you.
|
|
5
|
+
Author-email: Russ Wright <russ@visionairy.biz>
|
|
6
|
+
Maintainer-email: Russ Wright <russ@visionairy.biz>
|
|
7
|
+
License: MIT
|
|
8
|
+
Project-URL: Homepage, https://xpansion.dev
|
|
9
|
+
Project-URL: Repository, https://github.com/VisionAIrySE/XFMS
|
|
10
|
+
Project-URL: Documentation, https://github.com/VisionAIrySE/XFMS#readme
|
|
11
|
+
Project-URL: Methodology, https://github.com/VisionAIrySE/XFMS/blob/main/docs/methodology.md
|
|
12
|
+
Project-URL: Xpansion Framework, https://github.com/VisionAIrySE/XFMS/blob/main/docs/xpansion-overview.md
|
|
13
|
+
Project-URL: Bug Tracker, https://github.com/VisionAIrySE/XFMS/issues
|
|
14
|
+
Project-URL: Sponsor, https://github.com/sponsors/VisionAIrySE
|
|
15
|
+
Keywords: llm,model-selection,ai,ai-tools,claude-code,openrouter,benchmarks,llm-evaluation,llm-routing,recommendation-system,xpansion-framework,byok,ai-evaluation,model-recommender,llm-comparison,anthropic,openai,google-gemini,deepseek,lmsys-arena
|
|
16
|
+
Classifier: Development Status :: 4 - Beta
|
|
17
|
+
Classifier: Intended Audience :: Developers
|
|
18
|
+
Classifier: Intended Audience :: Information Technology
|
|
19
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
20
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
|
+
Classifier: Programming Language :: Python :: 3
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
25
|
+
Classifier: Operating System :: OS Independent
|
|
26
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
27
|
+
Requires-Python: >=3.10
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
License-File: LICENSE
|
|
30
|
+
License-File: NOTICE
|
|
31
|
+
Requires-Dist: httpx>=0.27
|
|
32
|
+
Provides-Extra: dev
|
|
33
|
+
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
34
|
+
Dynamic: license-file
|
|
35
|
+
|
|
36
|
+
# XFMS — Xpansion Framework Model Source
|
|
37
|
+
|
|
38
|
+
**Pick the right LLM for your task — without the Twitter vibes.**
|
|
39
|
+
|
|
40
|
+
State what you're using the model for. XFMS aggregates evidence from
|
|
41
|
+
eight independent benchmark sources, normalizes it onto a common
|
|
42
|
+
scale, lets your intent decide which dimensions matter, and returns
|
|
43
|
+
a ranked shortlist with plain-English rationale for every pick.
|
|
44
|
+
|
|
45
|
+
XFMS is one module of the **[Xpansion Framework](https://xpansion.dev)** —
|
|
46
|
+
a unified architecture for governing AI-assisted work.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## What this repository is
|
|
51
|
+
|
|
52
|
+
A **thin Python client** and **command-line tool** for calling the
|
|
53
|
+
hosted XFMS API at `xfms.vercel.app`. About 250 lines of code. It
|
|
54
|
+
turns a one-liner into a ranked LLM shortlist.
|
|
55
|
+
|
|
56
|
+
What this repository is **not**: the recommender engine, the score
|
|
57
|
+
catalog, or the ingestion pipeline. Those run on the hosted service.
|
|
58
|
+
The methodology behind every pick is published in full at
|
|
59
|
+
[docs/methodology.md](docs/methodology.md) — every claim there maps
|
|
60
|
+
to code that runs at request time, you just don't run it locally.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## What you say:
|
|
65
|
+
|
|
66
|
+
> *"Fixing bugs in our Python codebase."*
|
|
67
|
+
|
|
68
|
+
## What you get:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
My pick: GPT-5.5
|
|
72
|
+
|
|
73
|
+
Strong on structured output and instruction following — the two
|
|
74
|
+
dimensions that dominate code-edit work. Beats the Claude family on
|
|
75
|
+
Aider Polyglot and matches it on LiveBench reasoning, at roughly
|
|
76
|
+
60% of the per-token cost.
|
|
77
|
+
|
|
78
|
+
Alternatives:
|
|
79
|
+
2. claude-sonnet-4.6 — closer on coding quality, higher cost
|
|
80
|
+
3. gemini-3-pro — fastest, slightly weaker on tool use
|
|
81
|
+
|
|
82
|
+
Inferred weights from your purpose:
|
|
83
|
+
• structured_output_reliability 42.0% ← BigCodeBench, Aider
|
|
84
|
+
• instruction_following 28.0% ← LiveBench, Arena
|
|
85
|
+
• factuality 20.0% ← MMLU, GPQA
|
|
86
|
+
• coherence 10.0% ← LongBench
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Install
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
pip install xfms
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
You need two free keys:
|
|
98
|
+
|
|
99
|
+
- **Xpansion Framework Model Source access key** — identifies you
|
|
100
|
+
to the hosted API. Request one by submitting your email to the
|
|
101
|
+
signup endpoint:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
curl -X POST https://xfms.vercel.app/signup \
|
|
105
|
+
-H "Content-Type: application/json" \
|
|
106
|
+
-d '{"email":"you@yourdomain.com"}'
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
You'll get a confirmation email; click the button inside and
|
|
110
|
+
your API key arrives in a follow-up email.
|
|
111
|
+
|
|
112
|
+
- **OpenRouter key** — your BYOK (bring-your-own-key). XFMS makes a
|
|
113
|
+
small LLM call per pick to figure out which benchmarks matter for
|
|
114
|
+
your stated purpose. That call goes through *your* OpenRouter
|
|
115
|
+
account, so your inference cost stays with you (~$0.001 per
|
|
116
|
+
pick). Sign up at [openrouter.ai/keys](https://openrouter.ai/keys).
|
|
117
|
+
|
|
118
|
+
Configure them once:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
export XFMS_API_KEY=xfms_live_...
|
|
122
|
+
export OPENROUTER_API_KEY=sk-or-v1-...
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Use
|
|
126
|
+
|
|
127
|
+
**Command line:**
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
xfms rank "writing a tight editorial under a budget"
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
xfms pick "fixing bugs in our Python codebase"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
xfms rank "summarizing a long legal contract" --top-n 3
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
xfms rank "OCR a handwritten manifest" -c vision -c tool_use
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Python:**
|
|
146
|
+
|
|
147
|
+
```python
|
|
148
|
+
from xfms_client import XFMSClient
|
|
149
|
+
|
|
150
|
+
with XFMSClient() as xfms:
|
|
151
|
+
result = xfms.rank("writing a tight editorial under a budget")
|
|
152
|
+
print(result["models"][0]["name"])
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Or the one-shot:
|
|
156
|
+
|
|
157
|
+
```python
|
|
158
|
+
from xfms_client import pick
|
|
159
|
+
print(pick("fixing bugs in our Python codebase")["name"])
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Override the system's inference
|
|
163
|
+
|
|
164
|
+
If you know which quality dimension matters most for your task, say
|
|
165
|
+
so — your preference always wins over the LLM's inference:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
xfms rank "code refactor" --leaf-priorities "structured_output_reliability=1.0,factuality=0.5"
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
```python
|
|
172
|
+
xfms.rank(
|
|
173
|
+
"code refactor",
|
|
174
|
+
leaf_priorities={"structured_output_reliability": 1.0, "factuality": 0.5},
|
|
175
|
+
)
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Why BYOK
|
|
181
|
+
|
|
182
|
+
The hosted XFMS endpoint runs your purpose through a small language
|
|
183
|
+
model to figure out which benchmarks matter most for your task —
|
|
184
|
+
that's how the "inferred weights" block in the response gets built.
|
|
185
|
+
|
|
186
|
+
That model call goes through *your* OpenRouter account, not ours.
|
|
187
|
+
You pay for your own thinking; we pay for keeping the catalog
|
|
188
|
+
fresh. It's the right alignment of who's on the hook for what.
|
|
189
|
+
|
|
190
|
+
Typical cost per pick: about **$0.001** on OpenRouter (one short
|
|
191
|
+
classifier call).
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## How XFMS picks — the four principles
|
|
196
|
+
|
|
197
|
+
Methodology in full at [`docs/methodology.md`](docs/methodology.md).
|
|
198
|
+
The short version:
|
|
199
|
+
|
|
200
|
+
1. **No provider self-reports.** Every score comes from a
|
|
201
|
+
third-party evaluator running the same protocol across every
|
|
202
|
+
model.
|
|
203
|
+
2. **No single-source dependence.** Eight independent benchmark
|
|
204
|
+
sources contribute today; no single leaderboard determines a
|
|
205
|
+
pick.
|
|
206
|
+
3. **User intent beats LLM inference.** The system infers weights
|
|
207
|
+
from your purpose, but your stated `leaf_priorities` always
|
|
208
|
+
override the inference.
|
|
209
|
+
4. **Honest gaps over invented signal.** Missing data is recorded
|
|
210
|
+
as missing — no interpolation, no synthetic scores. Coverage
|
|
211
|
+
gaps surface on every pick.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Part of the Xpansion Framework
|
|
216
|
+
|
|
217
|
+
XFMS is one piece of a bigger architecture. The whole picture lives
|
|
218
|
+
at [`docs/xpansion-overview.md`](docs/xpansion-overview.md).
|
|
219
|
+
|
|
220
|
+
**Xpansion is in pre-signup right now.** Early access and founding
|
|
221
|
+
licenses are open at [xpansion.dev](https://xpansion.dev).
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Local development
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
git clone https://github.com/VisionAIrySE/XFMS.git
|
|
229
|
+
cd XFMS
|
|
230
|
+
python3 -m venv .venv
|
|
231
|
+
.venv/bin/pip install -e .[dev]
|
|
232
|
+
.venv/bin/python -m pytest tests/ -v
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
The tests mock the HTTP layer so they run offline — no API keys
|
|
236
|
+
needed to develop.
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## License
|
|
241
|
+
|
|
242
|
+
This client library is MIT-licensed. The recommender engine, the
|
|
243
|
+
catalog, and the ingestion pipeline are not open source. See
|
|
244
|
+
[`NOTICE`](NOTICE) for the patent reservation language and the
|
|
245
|
+
relationship to the broader Xpansion Framework IP.
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Contact
|
|
250
|
+
|
|
251
|
+
- **Russ Wright** — russ@visionairy.biz
|
|
252
|
+
- **Xpansion Framework** — [xpansion.dev](https://xpansion.dev)
|
|
253
|
+
- **Security disclosures** — see [`SECURITY.md`](SECURITY.md)
|
xfms-0.1.0/README.md
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# XFMS — Xpansion Framework Model Source
|
|
2
|
+
|
|
3
|
+
**Pick the right LLM for your task — without the Twitter vibes.**
|
|
4
|
+
|
|
5
|
+
State what you're using the model for. XFMS aggregates evidence from
|
|
6
|
+
eight independent benchmark sources, normalizes it onto a common
|
|
7
|
+
scale, lets your intent decide which dimensions matter, and returns
|
|
8
|
+
a ranked shortlist with plain-English rationale for every pick.
|
|
9
|
+
|
|
10
|
+
XFMS is one module of the **[Xpansion Framework](https://xpansion.dev)** —
|
|
11
|
+
a unified architecture for governing AI-assisted work.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## What this repository is
|
|
16
|
+
|
|
17
|
+
A **thin Python client** and **command-line tool** for calling the
|
|
18
|
+
hosted XFMS API at `xfms.vercel.app`. About 250 lines of code. It
|
|
19
|
+
turns a one-liner into a ranked LLM shortlist.
|
|
20
|
+
|
|
21
|
+
What this repository is **not**: the recommender engine, the score
|
|
22
|
+
catalog, or the ingestion pipeline. Those run on the hosted service.
|
|
23
|
+
The methodology behind every pick is published in full at
|
|
24
|
+
[docs/methodology.md](docs/methodology.md) — every claim there maps
|
|
25
|
+
to code that runs at request time, you just don't run it locally.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## What you say:
|
|
30
|
+
|
|
31
|
+
> *"Fixing bugs in our Python codebase."*
|
|
32
|
+
|
|
33
|
+
## What you get:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
My pick: GPT-5.5
|
|
37
|
+
|
|
38
|
+
Strong on structured output and instruction following — the two
|
|
39
|
+
dimensions that dominate code-edit work. Beats the Claude family on
|
|
40
|
+
Aider Polyglot and matches it on LiveBench reasoning, at roughly
|
|
41
|
+
60% of the per-token cost.
|
|
42
|
+
|
|
43
|
+
Alternatives:
|
|
44
|
+
2. claude-sonnet-4.6 — closer on coding quality, higher cost
|
|
45
|
+
3. gemini-3-pro — fastest, slightly weaker on tool use
|
|
46
|
+
|
|
47
|
+
Inferred weights from your purpose:
|
|
48
|
+
• structured_output_reliability 42.0% ← BigCodeBench, Aider
|
|
49
|
+
• instruction_following 28.0% ← LiveBench, Arena
|
|
50
|
+
• factuality 20.0% ← MMLU, GPQA
|
|
51
|
+
• coherence 10.0% ← LongBench
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Install
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
pip install xfms
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
You need two free keys:
|
|
63
|
+
|
|
64
|
+
- **Xpansion Framework Model Source access key** — identifies you
|
|
65
|
+
to the hosted API. Request one by submitting your email to the
|
|
66
|
+
signup endpoint:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
curl -X POST https://xfms.vercel.app/signup \
|
|
70
|
+
-H "Content-Type: application/json" \
|
|
71
|
+
-d '{"email":"you@yourdomain.com"}'
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
You'll get a confirmation email; click the button inside and
|
|
75
|
+
your API key arrives in a follow-up email.
|
|
76
|
+
|
|
77
|
+
- **OpenRouter key** — your BYOK (bring-your-own-key). XFMS makes a
|
|
78
|
+
small LLM call per pick to figure out which benchmarks matter for
|
|
79
|
+
your stated purpose. That call goes through *your* OpenRouter
|
|
80
|
+
account, so your inference cost stays with you (~$0.001 per
|
|
81
|
+
pick). Sign up at [openrouter.ai/keys](https://openrouter.ai/keys).
|
|
82
|
+
|
|
83
|
+
Configure them once:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
export XFMS_API_KEY=xfms_live_...
|
|
87
|
+
export OPENROUTER_API_KEY=sk-or-v1-...
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Use
|
|
91
|
+
|
|
92
|
+
**Command line:**
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
xfms rank "writing a tight editorial under a budget"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
xfms pick "fixing bugs in our Python codebase"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
xfms rank "summarizing a long legal contract" --top-n 3
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
xfms rank "OCR a handwritten manifest" -c vision -c tool_use
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Python:**
|
|
111
|
+
|
|
112
|
+
```python
|
|
113
|
+
from xfms_client import XFMSClient
|
|
114
|
+
|
|
115
|
+
with XFMSClient() as xfms:
|
|
116
|
+
result = xfms.rank("writing a tight editorial under a budget")
|
|
117
|
+
print(result["models"][0]["name"])
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Or the one-shot:
|
|
121
|
+
|
|
122
|
+
```python
|
|
123
|
+
from xfms_client import pick
|
|
124
|
+
print(pick("fixing bugs in our Python codebase")["name"])
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Override the system's inference
|
|
128
|
+
|
|
129
|
+
If you know which quality dimension matters most for your task, say
|
|
130
|
+
so — your preference always wins over the LLM's inference:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
xfms rank "code refactor" --leaf-priorities "structured_output_reliability=1.0,factuality=0.5"
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
```python
|
|
137
|
+
xfms.rank(
|
|
138
|
+
"code refactor",
|
|
139
|
+
leaf_priorities={"structured_output_reliability": 1.0, "factuality": 0.5},
|
|
140
|
+
)
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Why BYOK
|
|
146
|
+
|
|
147
|
+
The hosted XFMS endpoint runs your purpose through a small language
|
|
148
|
+
model to figure out which benchmarks matter most for your task —
|
|
149
|
+
that's how the "inferred weights" block in the response gets built.
|
|
150
|
+
|
|
151
|
+
That model call goes through *your* OpenRouter account, not ours.
|
|
152
|
+
You pay for your own thinking; we pay for keeping the catalog
|
|
153
|
+
fresh. It's the right alignment of who's on the hook for what.
|
|
154
|
+
|
|
155
|
+
Typical cost per pick: about **$0.001** on OpenRouter (one short
|
|
156
|
+
classifier call).
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## How XFMS picks — the four principles
|
|
161
|
+
|
|
162
|
+
Methodology in full at [`docs/methodology.md`](docs/methodology.md).
|
|
163
|
+
The short version:
|
|
164
|
+
|
|
165
|
+
1. **No provider self-reports.** Every score comes from a
|
|
166
|
+
third-party evaluator running the same protocol across every
|
|
167
|
+
model.
|
|
168
|
+
2. **No single-source dependence.** Eight independent benchmark
|
|
169
|
+
sources contribute today; no single leaderboard determines a
|
|
170
|
+
pick.
|
|
171
|
+
3. **User intent beats LLM inference.** The system infers weights
|
|
172
|
+
from your purpose, but your stated `leaf_priorities` always
|
|
173
|
+
override the inference.
|
|
174
|
+
4. **Honest gaps over invented signal.** Missing data is recorded
|
|
175
|
+
as missing — no interpolation, no synthetic scores. Coverage
|
|
176
|
+
gaps surface on every pick.
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Part of the Xpansion Framework
|
|
181
|
+
|
|
182
|
+
XFMS is one piece of a bigger architecture. The whole picture lives
|
|
183
|
+
at [`docs/xpansion-overview.md`](docs/xpansion-overview.md).
|
|
184
|
+
|
|
185
|
+
**Xpansion is in pre-signup right now.** Early access and founding
|
|
186
|
+
licenses are open at [xpansion.dev](https://xpansion.dev).
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Local development
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
git clone https://github.com/VisionAIrySE/XFMS.git
|
|
194
|
+
cd XFMS
|
|
195
|
+
python3 -m venv .venv
|
|
196
|
+
.venv/bin/pip install -e .[dev]
|
|
197
|
+
.venv/bin/python -m pytest tests/ -v
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
The tests mock the HTTP layer so they run offline — no API keys
|
|
201
|
+
needed to develop.
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## License
|
|
206
|
+
|
|
207
|
+
This client library is MIT-licensed. The recommender engine, the
|
|
208
|
+
catalog, and the ingestion pipeline are not open source. See
|
|
209
|
+
[`NOTICE`](NOTICE) for the patent reservation language and the
|
|
210
|
+
relationship to the broader Xpansion Framework IP.
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Contact
|
|
215
|
+
|
|
216
|
+
- **Russ Wright** — russ@visionairy.biz
|
|
217
|
+
- **Xpansion Framework** — [xpansion.dev](https://xpansion.dev)
|
|
218
|
+
- **Security disclosures** — see [`SECURITY.md`](SECURITY.md)
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "xfms"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Pick the right LLM for your task. Xpansion Framework Model Source — aggregates 8 independent benchmark sources via the hosted XFMS API. BYOK so your inference cost stays with you."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = {text = "MIT"}
|
|
12
|
+
authors = [
|
|
13
|
+
{name = "Russ Wright", email = "russ@visionairy.biz"},
|
|
14
|
+
]
|
|
15
|
+
maintainers = [
|
|
16
|
+
{name = "Russ Wright", email = "russ@visionairy.biz"},
|
|
17
|
+
]
|
|
18
|
+
keywords = [
|
|
19
|
+
"llm", "model-selection", "ai", "ai-tools", "claude-code",
|
|
20
|
+
"openrouter", "benchmarks", "llm-evaluation", "llm-routing",
|
|
21
|
+
"recommendation-system", "xpansion-framework", "byok",
|
|
22
|
+
"ai-evaluation", "model-recommender", "llm-comparison",
|
|
23
|
+
"anthropic", "openai", "google-gemini", "deepseek", "lmsys-arena",
|
|
24
|
+
]
|
|
25
|
+
classifiers = [
|
|
26
|
+
"Development Status :: 4 - Beta",
|
|
27
|
+
"Intended Audience :: Developers",
|
|
28
|
+
"Intended Audience :: Information Technology",
|
|
29
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
30
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
31
|
+
"Programming Language :: Python :: 3",
|
|
32
|
+
"Programming Language :: Python :: 3.10",
|
|
33
|
+
"Programming Language :: Python :: 3.11",
|
|
34
|
+
"Programming Language :: Python :: 3.12",
|
|
35
|
+
"Operating System :: OS Independent",
|
|
36
|
+
"License :: OSI Approved :: MIT License",
|
|
37
|
+
]
|
|
38
|
+
dependencies = [
|
|
39
|
+
"httpx>=0.27",
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
[project.optional-dependencies]
|
|
43
|
+
dev = [
|
|
44
|
+
"pytest>=8.0",
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
[project.urls]
|
|
48
|
+
Homepage = "https://xpansion.dev"
|
|
49
|
+
Repository = "https://github.com/VisionAIrySE/XFMS"
|
|
50
|
+
Documentation = "https://github.com/VisionAIrySE/XFMS#readme"
|
|
51
|
+
"Methodology" = "https://github.com/VisionAIrySE/XFMS/blob/main/docs/methodology.md"
|
|
52
|
+
"Xpansion Framework" = "https://github.com/VisionAIrySE/XFMS/blob/main/docs/xpansion-overview.md"
|
|
53
|
+
"Bug Tracker" = "https://github.com/VisionAIrySE/XFMS/issues"
|
|
54
|
+
"Sponsor" = "https://github.com/sponsors/VisionAIrySE"
|
|
55
|
+
|
|
56
|
+
[project.scripts]
|
|
57
|
+
xfms = "xfms_client.cli:main"
|
|
58
|
+
|
|
59
|
+
[tool.setuptools]
|
|
60
|
+
packages = ["xfms_client"]
|
xfms-0.1.0/setup.cfg
ADDED