-
Notifications
You must be signed in to change notification settings - Fork 31
Expand file tree
/
Copy pathcomposer.json
More file actions
151 lines (151 loc) · 5.9 KB
/
Copy pathcomposer.json
File metadata and controls
151 lines (151 loc) · 5.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
{
"name": "ferry-ai/php-inference",
"description": "FerryAI — unified inference API for PHP applications",
"type": "project",
"keywords": ["ai", "ml", "onnx", "llama", "embedding", "llm", "vector-store", "rag"],
"homepage": "https://github.com/MADEVAL/FerryAI",
"license": "MIT",
"authors": [
{
"name": "Yevhen Leonidov",
"homepage": "https://github.com/MADEVAL"
}
],
"bin": [
"bin/ferry-ai",
"bin/generate-ffi"
],
"require": {
"php": ">=8.3",
"ext-ffi": "*",
"ext-fileinfo": "*",
"ext-hash": "*",
"ext-json": "*",
"ankane/onnxruntime": "^0.3.0",
"psr/http-factory": "^1.1",
"psr/http-message": "^1.1 || ^2.0"
},
"require-dev": {
"captainhook/captainhook": "5.29.2",
"ergebnis/composer-normalize": "^2.52",
"infection/infection": "0.34",
"nyholm/psr7": "^1.8",
"php-cs-fixer/shim": "^3.0",
"phpstan/phpstan": "^2.0",
"phpstan/phpstan-deprecation-rules": "^2.0",
"phpstan/phpstan-strict-rules": "^2.0",
"phpunit/phpunit": "^12.0 || ^13.0",
"symplify/monorepo-builder": "*",
"vimeo/psalm": "^6.0"
},
"autoload": {
"psr-4": {
"FerryAI\\Core\\": "packages/core/src/",
"FerryAI\\Tensor\\": "packages/tensor/src/",
"FerryAI\\OnnxBackend\\": "packages/onnx-backend/src/",
"FerryAI\\LlamaBackend\\": "packages/llama-backend/src/",
"FerryAI\\Tokenizer\\": "packages/tokenizer/src/",
"FerryAI\\Embedding\\": "packages/embedding/src/",
"FerryAI\\Vector\\": "packages/vector/src/",
"FerryAI\\ModelHub\\": "packages/model-hub/src/",
"FerryAI\\Pipeline\\": "packages/pipeline/src/",
"FerryAI\\CpuBackend\\": "packages/cpu-backend/src/",
"FerryAI\\DataFrame\\": "packages/dataframe/src/",
"FerryAI\\Laravel\\": "packages/laravel/src/",
"FerryAI\\Symfony\\": "packages/symfony/src/",
"FerryAI\\": "packages/ai/src/"
}
},
"autoload-dev": {
"psr-4": {
"FerryAI\\Core\\Tests\\": "packages/core/tests/",
"FerryAI\\Tensor\\Tests\\": "packages/tensor/tests/",
"FerryAI\\OnnxBackend\\Tests\\": "packages/onnx-backend/tests/",
"FerryAI\\LlamaBackend\\Tests\\": "packages/llama-backend/tests/",
"FerryAI\\Tokenizer\\Tests\\": "packages/tokenizer/tests/",
"FerryAI\\Embedding\\Tests\\": "packages/embedding/tests/",
"FerryAI\\Vector\\Tests\\": "packages/vector/tests/",
"FerryAI\\ModelHub\\Tests\\": "packages/model-hub/tests/",
"FerryAI\\Pipeline\\Tests\\": "packages/pipeline/tests/",
"FerryAI\\CpuBackend\\Tests\\": "packages/cpu-backend/tests/",
"FerryAI\\DataFrame\\Tests\\": "packages/dataframe/tests/",
"FerryAI\\Laravel\\Tests\\": "packages/laravel/tests/",
"FerryAI\\Symfony\\Tests\\": "packages/symfony/tests/",
"FerryAI\\Tests\\": ["tests/", "packages/ai/tests/"]
},
"files": [
"tests/local_env.php"
]
},
"scripts": {
"test": [
"@putenv FERRY_AI_TESTING=1",
"@php vendor/bin/phpunit --testsuite unit"
],
"test-integration": [
"@putenv FERRY_AI_TESTING=1",
"@putenv FERRY_AI_INTEGRATION=1",
"@php vendor/bin/phpunit --testsuite integration"
],
"verify": [
"@putenv FERRY_AI_TESTING=1",
"@php vendor/bin/phpunit --testsuite verification"
],
"stan": "@php vendor/bin/phpstan analyse --memory-limit=512M",
"psalm": "@php vendor/bin/psalm --no-cache",
"analyse": [
"@stan",
"@psalm"
],
"cs-check": "@php vendor/bin/php-cs-fixer check --diff",
"cs-fix": "@php vendor/bin/php-cs-fixer fix",
"lint": [
"@cs-check",
"@analyse"
],
"check": [
"@lint",
"@test"
],
"coverage": [
"@putenv XDEBUG_MODE=coverage",
"@php vendor/bin/phpunit --testsuite unit --coverage-html build/coverage --coverage-text"
],
"mutation": "@php vendor/bin/infection",
"benchmark-embed": "@php benchmarks/embed.php",
"benchmark-chat": "@php benchmarks/chat.php",
"benchmark-vector": "@php benchmarks/vector.php",
"benchmark": [
"@benchmark-embed",
"@benchmark-chat",
"@benchmark-vector"
]
},
"scripts-descriptions": {
"test": "Run all unit tests",
"test-integration": "Run integration tests (requires ONNX Runtime / llama.cpp)",
"verify": "Run runtime bug/audit verification tests (tests/Verification, @coversNothing)",
"stan": "PHPStan static analysis (level 8)",
"psalm": "Psalm static analysis (level 3)",
"analyse": "Run both PHPStan and Psalm",
"cs-check": "Check code style (PER-CS 2.0)",
"cs-fix": "Fix code style automatically",
"lint": "Run all linters",
"check": "Lint + test (pre-commit)",
"coverage": "Generate HTML coverage report",
"mutation": "Run mutation testing (Infection)",
"benchmark-embed": "Benchmark embedding throughput (needs an ONNX embedding model)",
"benchmark-chat": "Benchmark llama chat throughput (needs ferry_llama + a GGUF model)",
"benchmark-vector": "Benchmark vector store insert/search (SQLite, no model needed)",
"benchmark": "Run all benchmarks (embed + chat + vector)"
},
"config": {
"sort-packages": true,
"allow-plugins": {
"phpstan/extension-installer": true,
"infection/extension-installer": true
}
},
"minimum-stability": "stable",
"prefer-stable": true
}