mirror of
https://github.com/NCBM/plyngent.git
synced 2026-07-23 05:55:16 +08:00
core/config+agent: OpenAI provider_tools for hosted Responses tools
Merge opaque tool dicts (web_search, file_search, …) into POST /responses; local ToolRegistry unchanged.
This commit is contained in:
@@ -117,6 +117,23 @@ def test_chat_param_to_responses_kwargs() -> None:
|
||||
assert len(kwargs["tools"]) == 1
|
||||
|
||||
|
||||
def test_provider_tools_merged_after_local_functions() -> None:
|
||||
param = ChatCompletionsParam(
|
||||
model="gpt-test",
|
||||
messages=[UserChatMessage(content="hi")],
|
||||
tools=[ToolFunctionItem(function=ToolFunction(name="local_tool", parameters={"type": "object"}))],
|
||||
)
|
||||
kwargs = chat_param_to_responses_kwargs(
|
||||
param,
|
||||
provider_tools=[{"type": "web_search"}, {"type": "file_search", "vector_store_ids": ["vs_1"]}],
|
||||
)
|
||||
tools = kwargs["tools"]
|
||||
assert len(tools) == 3
|
||||
assert tools[0].name == "local_tool"
|
||||
assert tools[1]["type"] == "web_search"
|
||||
assert tools[2]["vector_store_ids"] == ["vs_1"]
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_responses_chat_client_non_stream(monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
from plyngent.lmproto.openai.client import OpenAIClient
|
||||
|
||||
@@ -24,6 +24,19 @@ def test_openai_provider_defaults_base_url() -> None:
|
||||
client = create_client(provider)
|
||||
assert isinstance(client, ResponsesChatClient)
|
||||
assert hasattr(client, "chat_completions")
|
||||
assert client._provider_tools == []
|
||||
|
||||
|
||||
def test_openai_provider_tools_passed_to_wrapper() -> None:
|
||||
from plyngent.agent.responses_client import ResponsesChatClient
|
||||
|
||||
provider = OpenAIProvider(
|
||||
access_key_or_token="sk-test",
|
||||
provider_tools=[{"type": "web_search"}],
|
||||
)
|
||||
client = create_client(provider)
|
||||
assert isinstance(client, ResponsesChatClient)
|
||||
assert client._provider_tools == [{"type": "web_search"}]
|
||||
|
||||
|
||||
def test_openai_compatible_requires_url() -> None:
|
||||
|
||||
Reference in New Issue
Block a user