Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd10f036

Browse files
authored
Revert "Use contextvars for tracking the MCP sampling model" (#2132)
1 parent09e0821 commitd10f036

File tree

3 files changed

+6
-26
lines changed

3 files changed

+6
-26
lines changed

‎pydantic_ai_slim/pydantic_ai/agent.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1740,7 +1740,7 @@ async def run_mcp_servers(
17401740
try:
17411741
formcp_serverinself._mcp_servers:
17421742
ifsampling_modelisnotNone:# pragma: no branch
1743-
exit_stack.enter_context(mcp_server.override_sampling_model(sampling_model))
1743+
mcp_server.sampling_model=sampling_model
17441744
awaitexit_stack.enter_async_context(mcp_server)
17451745
yield
17461746
finally:

‎pydantic_ai_slim/pydantic_ai/mcp.py

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33
importbase64
44
importfunctools
55
fromabcimportABC,abstractmethod
6-
fromcollections.abcimportAsyncIterator,Awaitable,Iterator,Sequence
7-
fromcontextlibimportAbstractAsyncContextManager,AsyncExitStack,asynccontextmanager,contextmanager
8-
fromcontextvarsimportContextVar
6+
fromcollections.abcimportAsyncIterator,Awaitable,Sequence
7+
fromcontextlibimportAbstractAsyncContextManager,AsyncExitStack,asynccontextmanager
98
fromdataclassesimportdataclass
109
frompathlibimportPath
1110
fromtypesimportTracebackType
@@ -61,22 +60,6 @@ class MCPServer(ABC):
6160
_exit_stack:AsyncExitStack
6261
sampling_model:models.Model|None=None
6362

64-
def__post_init__(self):
65-
self._override_sampling_model:ContextVar[models.Model|None]=ContextVar(
66-
'_override_sampling_model',default=None
67-
)
68-
69-
@contextmanager
70-
defoverride_sampling_model(
71-
self,
72-
model:models.Model,
73-
)->Iterator[None]:
74-
token=self._override_sampling_model.set(model)
75-
try:
76-
yield
77-
finally:
78-
self._override_sampling_model.reset(token)
79-
8063
@abstractmethod
8164
@asynccontextmanager
8265
asyncdefclient_streams(
@@ -201,8 +184,7 @@ async def _sampling_callback(
201184
self,context:RequestContext[ClientSession,Any],params:mcp_types.CreateMessageRequestParams
202185
)->mcp_types.CreateMessageResult|mcp_types.ErrorData:
203186
"""MCP sampling callback."""
204-
sampling_model=self._override_sampling_model.get()orself.sampling_model
205-
ifsampling_modelisNone:
187+
ifself.sampling_modelisNone:
206188
raiseValueError('Sampling model is not set')# pragma: no cover
207189

208190
pai_messages=_mcp.map_from_mcp_params(params)
@@ -214,15 +196,15 @@ async def _sampling_callback(
214196
ifstop_sequences:=params.stopSequences:# pragma: no branch
215197
model_settings['stop_sequences']=stop_sequences
216198

217-
model_response=awaitsampling_model.request(
199+
model_response=awaitself.sampling_model.request(
218200
pai_messages,
219201
model_settings,
220202
models.ModelRequestParameters(),
221203
)
222204
returnmcp_types.CreateMessageResult(
223205
role='assistant',
224206
content=_mcp.map_from_model_response(model_response),
225-
model=sampling_model.model_name,
207+
model=self.sampling_model.model_name,
226208
)
227209

228210
def_map_tool_result_part(

‎tests/test_examples.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
importshutil
77
importsys
88
fromcollections.abcimportAsyncIterator,Iterable,Sequence
9-
fromcontextlibimportnullcontext
109
fromdataclassesimportdataclass
1110
frominspectimportFrameInfo
1211
fromioimportStringIO
@@ -259,7 +258,6 @@ def rich_prompt_ask(prompt: str, *_args: Any, **_kwargs: Any) -> str:
259258

260259
classMockMCPServer:
261260
is_running=True
262-
override_sampling_model=nullcontext
263261

264262
asyncdef__aenter__(self)->MockMCPServer:
265263
returnself

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp