mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-10-04 04:04:14 +00:00
# What does this PR do? Llama-stack now supports a new OpenAI compatible endpoint with Azure OpenAI. The starter distro has been updated to add the new remote inference provider. A few tests have been modified and improved. ## Test Plan Deploy a model in the Aure portal then: ``` $ AZURE_API_KEY=... AZURE_API_BASE=... uv run llama stack build --image-type venv --providers inference=remote::azure --run ... $ LLAMA_STACK_CONFIG=http://localhost:8321 uv run --group test pytest -v -ra --text-model azure/gpt-4.1 tests/integration/inference/test_openai_completion.py ... Results: ``` ============================================= test session starts ============================================== platform darwin -- Python 3.12.8, pytest-8.4.1, pluggy-1.6.0 -- /Users/leseb/Documents/AI/llama-stack/.venv/bin/python3 cachedir: .pytest_cache metadata: {'Python': '3.12.8', 'Platform': 'macOS-15.6.1-arm64-arm-64bit', 'Packages': {'pytest': '8.4.1', 'pluggy': '1.6.0'}, 'Plugins': {'anyio': '4.9.0', 'html': '4.1.1', 'socket': '0.7.0', 'asyncio': '1.1.0', 'json-report': '1.5.0', 'timeout': '2.4.0', 'metadata': '3.1.1', 'cov': '6.2.1', 'nbval': '0.11.0', 'hydra-core': '1.3.2'}} rootdir: /Users/leseb/Documents/AI/llama-stack configfile: pyproject.toml plugins: anyio-4.9.0, html-4.1.1, socket-0.7.0, asyncio-1.1.0, json-report-1.5.0, timeout-2.4.0, metadata-3.1.1, cov-6.2.1, nbval-0.11.0, hydra-core-1.3.2 asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function collected 27 items tests/integration/inference/test_openai_completion.py::test_openai_completion_non_streaming[txt=azure/gpt-5-mini-inference:completion:sanity] SKIPPED [ 3%] tests/integration/inference/test_openai_completion.py::test_openai_completion_non_streaming_suffix[txt=azure/gpt-5-mini-inference:completion:suffix] SKIPPED [ 7%] tests/integration/inference/test_openai_completion.py::test_openai_completion_streaming[txt=azure/gpt-5-mini-inference:completion:sanity] SKIPPED [ 11%] tests/integration/inference/test_openai_completion.py::test_openai_completion_prompt_logprobs[txt=azure/gpt-5-mini-1] SKIPPED [ 14%] tests/integration/inference/test_openai_completion.py::test_openai_completion_guided_choice[txt=azure/gpt-5-mini] SKIPPED [ 18%] tests/integration/inference/test_openai_completion.py::test_openai_chat_completion_non_streaming[openai_client-txt=azure/gpt-5-mini-inference:chat_completion:non_streaming_01] PASSED [ 22%] tests/integration/inference/test_openai_completion.py::test_openai_chat_completion_streaming[openai_client-txt=azure/gpt-5-mini-inference:chat_completion:streaming_01] PASSED [ 25%] tests/integration/inference/test_openai_completion.py::test_openai_chat_completion_streaming_with_n[openai_client-txt=azure/gpt-5-mini-inference:chat_completion:streaming_01] PASSED [ 29%] tests/integration/inference/test_openai_completion.py::test_inference_store[openai_client-txt=azure/gpt-5-mini-True] PASSED [ 33%] tests/integration/inference/test_openai_completion.py::test_inference_store_tool_calls[openai_client-txt=azure/gpt-5-mini-True] PASSED [ 37%] tests/integration/inference/test_openai_completion.py::test_openai_chat_completion_non_streaming_with_file[txt=azure/gpt-5-mini] SKIPPEDed files.) [ 40%] tests/integration/inference/test_openai_completion.py::test_openai_completion_prompt_logprobs[txt=azure/gpt-5-mini-0] SKIPPED [ 44%] tests/integration/inference/test_openai_completion.py::test_openai_chat_completion_non_streaming[openai_client-txt=azure/gpt-5-mini-inference:chat_completion:non_streaming_02] PASSED [ 48%] tests/integration/inference/test_openai_completion.py::test_openai_chat_completion_streaming[openai_client-txt=azure/gpt-5-mini-inference:chat_completion:streaming_02] PASSED [ 51%] tests/integration/inference/test_openai_completion.py::test_openai_chat_completion_streaming_with_n[openai_client-txt=azure/gpt-5-mini-inference:chat_completion:streaming_02] PASSED [ 55%] tests/integration/inference/test_openai_completion.py::test_inference_store[openai_client-txt=azure/gpt-5-mini-False] PASSED [ 59%] tests/integration/inference/test_openai_completion.py::test_inference_store_tool_calls[openai_client-txt=azure/gpt-5-mini-False] PASSED [ 62%] tests/integration/inference/test_openai_completion.py::test_openai_chat_completion_non_streaming[client_with_models-txt=azure/gpt-5-mini-inference:chat_completion:non_streaming_01] PASSED [ 66%] tests/integration/inference/test_openai_completion.py::test_openai_chat_completion_streaming[client_with_models-txt=azure/gpt-5-mini-inference:chat_completion:streaming_01] PASSED [ 70%] tests/integration/inference/test_openai_completion.py::test_openai_chat_completion_streaming_with_n[client_with_models-txt=azure/gpt-5-mini-inference:chat_completion:streaming_01] PASSED [ 74%] tests/integration/inference/test_openai_completion.py::test_inference_store[client_with_models-txt=azure/gpt-5-mini-True] PASSED [ 77%] tests/integration/inference/test_openai_completion.py::test_inference_store_tool_calls[client_with_models-txt=azure/gpt-5-mini-True] PASSED [ 81%] tests/integration/inference/test_openai_completion.py::test_openai_chat_completion_non_streaming[client_with_models-txt=azure/gpt-5-mini-inference:chat_completion:non_streaming_02] PASSED [ 85%] tests/integration/inference/test_openai_completion.py::test_openai_chat_completion_streaming[client_with_models-txt=azure/gpt-5-mini-inference:chat_completion:streaming_02] PASSED [ 88%] tests/integration/inference/test_openai_completion.py::test_openai_chat_completion_streaming_with_n[client_with_models-txt=azure/gpt-5-mini-inference:chat_completion:streaming_02] PASSED [ 92%] tests/integration/inference/test_openai_completion.py::test_inference_store[client_with_models-txt=azure/gpt-5-mini-False] PASSED [ 96%] tests/integration/inference/test_openai_completion.py::test_inference_store_tool_calls[client_with_models-txt=azure/gpt-5-mini-False] PASSED [100%] =========================================== short test summary info ============================================ SKIPPED [3] tests/integration/inference/test_openai_completion.py:63: Model azure/gpt-5-mini hosted by remote::azure doesn't support OpenAI completions. SKIPPED [3] tests/integration/inference/test_openai_completion.py:118: Model azure/gpt-5-mini hosted by remote::azure doesn't support vllm extra_body parameters. SKIPPED [1] tests/integration/inference/test_openai_completion.py:124: Model azure/gpt-5-mini hosted by remote::azure doesn't support chat completion calls with base64 encoded files. ================================== 20 passed, 7 skipped, 2 warnings in 51.77s ================================== ``` Signed-off-by: Sébastien Han <seb@redhat.com> |
||
---|---|---|
.. | ||
0b3f2e4754ff.json | ||
0b27fd737699.json | ||
00ba04f74a96.json | ||
0e8f2b001dd9.json | ||
0fda25b9241c.json | ||
0ff78129bb3a.json | ||
1adfaa0e062e.json | ||
1b92be674e2a.json | ||
1b8394f90636.json | ||
1b45391880c6.json | ||
1e11c2b20ff8.json | ||
1f48f4b2ae33.json | ||
2afe3b38ca01.json | ||
2b2ad549510d.json | ||
2d187a11704c.json | ||
3c0bf9ba81b2.json | ||
3c3f13cb7794.json | ||
3ca695048bee.json | ||
3dff18060ebc.json | ||
4a3a4447b16b.json | ||
4de6877d86fa.json | ||
5db0c44c83a4.json | ||
5f5d16afadb4.json | ||
6cb0285a7638.json | ||
6cc063bbd7d3.json | ||
6d35c91287e2.json | ||
6f96090aa955.json | ||
6fbea1abca7c.json | ||
6fe1d4fedf12.json | ||
7b25b702ea18.json | ||
7b4815aba6c5.json | ||
7bcb0f86c91b.json | ||
7e6806cba34a.json | ||
8bba71367e87.json | ||
9b812cbcb88d.json | ||
9c4bc9c3e7ac.json | ||
9c007f300365.json | ||
9c28ec9ac338.json | ||
9c140a29ae09.json | ||
9e7a83d3d596.json | ||
9e651e5fcfe2.json | ||
9f3d749cc1c8.json | ||
9fadf5a3d68f.json | ||
10eea8c15ddc.json | ||
011f70e24ce4.json | ||
35db283fef1d.json | ||
40f524d1934a.json | ||
41e27b9b5d09.json | ||
43e106de6736.json | ||
44a1d9de0602.json | ||
44fb9cf5875f.json | ||
48d2fb183a2a.json | ||
56ac6a7c6df0.json | ||
57b67d1b1a36.json | ||
61be36ad8ccd.json | ||
62aa454ea5f9.json | ||
70adef2c30c4.json | ||
72c1126ff2f9.json | ||
75d0dd9d0fa3.json | ||
76b89a84cd6f.json | ||
80e4404d8987.json | ||
80f09f27dd61.json | ||
81a91f79c51d.json | ||
83c2ffb72daa.json | ||
84cab42e1f5c.json | ||
90fec951fdb9.json | ||
94d11daee205.json | ||
97d3812bfccb.json | ||
97e259c0d3e5.json | ||
173ecb3aab28.json | ||
177ba8517262.json | ||
198ef7208389.json | ||
211b1562d4e6.json | ||
325a72db5755.json | ||
382c2f22274c.json | ||
390f0c7dac96.json | ||
477f8946bf7d.json | ||
545d86510a80.json | ||
554de3cd986f.json | ||
563b994bb7d1.json | ||
802f60021837.json | ||
830a1fe14938.json | ||
836f51dfb3c5.json | ||
840fbb380b73.json | ||
3877ecf1bc62.json | ||
4014dd44c15f.json | ||
6906a6e71988.json | ||
7354ec181984.json | ||
12913f20f6ac.json | ||
17253d7cc667.json | ||
23506e73bb9e.json | ||
31407e035752.json | ||
50340cd4d253.json | ||
67198cbad48f.json | ||
85594a69d74a.json | ||
140187e305dc.json | ||
174458ad71b2.json | ||
178016edef0e.json | ||
197228e26971.json | ||
561746e1c8de.json | ||
731824c54461.json | ||
4096743baf8e.json | ||
04172112ffbb.json | ||
4597743bcd2a.json | ||
8295382a8e7c.json | ||
8752115f8d0c.json | ||
4420515208a8.json | ||
5370751803dc.json | ||
417020320684.json | ||
a0c4df33879f.json | ||
a4c8d19bb1eb.json | ||
a59d0d7c1485.json | ||
a410d4840402.json | ||
a5187d9d5057.json | ||
a6810c23eda8.json | ||
a97477559b10.json | ||
ae1c22f18ecc.json | ||
ae6835cfe70e.json | ||
afb33182f365.json | ||
b4cda53cd04f.json | ||
b5e3ed420986.json | ||
b14ff438ca99.json | ||
b44cc7a7afc8.json | ||
b91f1fb4aedb.json | ||
b612debbd3bf.json | ||
b24590574a85.json | ||
bbd0637dce16.json | ||
bd356b27a085.json | ||
bf79a89cc37f.json | ||
c9cba6f3ee38.json | ||
c31a86ea6c58.json | ||
c2199d6064db.json | ||
c7582fa7c2c4.json | ||
c791119e6359.json | ||
c9667519ad7c.json | ||
cb3df2a1dc22.json | ||
cd094caaf1c0.json | ||
d0ac68cbde69.json | ||
d3e27b7234e2.json | ||
d4c86ac355fb.json | ||
d4f56d7d1996.json | ||
d86d4fc1eaca.json | ||
da531c71e64f.json | ||
dac7a32e5db9.json | ||
dbc41d2417e1.json | ||
dc8120cf0774.json | ||
dd9e7d5913e9.json | ||
dd226d71f844.json | ||
decfd950646c.json | ||
e0a6dce1d94b.json | ||
e2c9b07709fe.json | ||
e9c8a0e4f0e0.json | ||
e08848bfcd28.json | ||
e29300494763.json | ||
e96152610712.json | ||
ed9e9b34008d.json | ||
eee6a163b837.json | ||
eee47930e3ae.json | ||
ef59cbff54d0.json | ||
ef757a75ed08.json | ||
f1ea938b0b0d.json | ||
f3c3afbd9b7e.json | ||
f6d655e91ac3.json | ||
f70f30f54211.json | ||
f80b99430f7e.json | ||
f477c2fe1332.json | ||
f1592dee71e5.json | ||
f6857bcea729.json | ||
fb785db7fafd.json | ||
fcdef245da95.json | ||
fe140befeba4.json | ||
ff7db0102b28.json | ||
ff3271401fb4.json | ||
models-4a3a4447b16b-3057338f.json |