99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

Phoenix Playground 異步 LLM 客戶端生命周期管理:統(tǒng)一異步上下文管理器模式的設計與實現(xiàn)

Phoenix Playground 異步 LLM 客戶端生命周期管理:統(tǒng)一異步上下文管理器模式的設計與實現(xiàn) Phoenix Playground 異步 LLM 客戶端生命周期管理統(tǒng)一異步上下文管理器模式的設計與實現(xiàn)【免費下載鏈接】phoenixAI Observability Evaluation項目地址: https://gitcode.com/gh_mirrors/phoenix13/phoenix本文基于 Phoenix 內(nèi)部設計規(guī)格 async-llm-client-lifecycle.md深入剖析 Phoenix Playground 基礎設施中如何通過統(tǒng)一異步上下文管理器工廠模式管理 OpenAI、Azure OpenAI、Anthropic、Google GenAI、AWS Bedrock 等 LLM Provider 客戶端的完整生命周期。你將理解 boto3 為何會凍結(jié) asyncio 事件循環(huán)、aioboto3 為何強制使用async with、各 SDK 上下文管理器實現(xiàn)的差異以及 Phoenix 在源碼中如何落地這一模式——讀完即可在自己的異步 LLM 服務中正確設計客戶端創(chuàng)建、復用與資源清理策略。概述為什么需要統(tǒng)一的客戶端生命周期管理Phoenix 的 Playground模型實驗場功能支持在同一個異步服務內(nèi)調(diào)用多個 LLM ProviderOpenAI、Azure OpenAI、Anthropic、Google GenAI、AWS Bedrock每個 Provider 的 SDK 擁有截然不同的客戶端生命周期模式。規(guī)格文檔 async-llm-client-lifecycle.md 描述了在 Phoenix 全部 LLM Provider 客戶端上引入統(tǒng)一異步上下文管理器模式unified async context manager pattern的動機與設計保證 HTTP 連接生命周期的正確管理創(chuàng)建、使用、顯式關閉提供與底層 SDK 無關的一致接口修復 AWS Bedrock 的 boto3 阻塞事件循環(huán)問題。對應實現(xiàn)位于 playground_clients.py客戶端工廠的類型定義與各 Provider 的工廠實現(xiàn)位于 model_provider.py。變更內(nèi)容各 Provider 客戶端模式的演進規(guī)格文檔給出了本次設計的變更對照表Provider變更前變更后影響AWS Bedrockboto3阻塞 I/Oaioboto3異步 I/O修復事件循環(huán)阻塞OpenAI每請求新建客戶端每請求新建客戶端無變化Azure OpenAI每請求新建客戶端每請求新建客戶端無變化Anthropic每請求新建客戶端每請求新建客戶端無變化Google GenAI每請求新建客戶端每請求新建客戶端無變化核心洞察所有 Provider 原本就采用每請求新建客戶端fresh client per request的模式因此已經(jīng)承擔了每次請求約 20–250ms 的連接開銷。本次改造并未給非 Bedrock Provider 引入新的開銷——它只修復了 Bedrock 的阻塞行為。統(tǒng)一工廠模式unified factory pattern以顯式異步上下文管理器正式化了既有的 fresh-client 模式確保所有 Provider 的資源清理行為一致。問題陳述各 SDK 客戶端生命周期的差異Phoenix 的 Playground 支持多個 LLM Provider每個 Provider 的 SDK 客戶端生命周期模式各不相同OpenAI / Azure OpenAI / Anthropic客戶端可以同步創(chuàng)建但持有 HTTP 連接應顯式關閉AWS Bedrockboto3同步客戶端使用阻塞 I/O會凍結(jié)異步事件循環(huán)Google GenAI同步/異步雙客戶端生命周期管理相互獨立。值得注意的是Azure OpenAI 復用了同一個AsyncOpenAI客戶端僅通過自定義base_url指向 Azure 端點形如https://{endpoint}/openai/v1/從而避免了單獨的AsyncAzureOpenAI類。在 playground_clients.py 中可以看到 base_url 的構(gòu)造邏輯# Construct the v1 API base URL endpoint endpoint.rstrip(/) base_url (endpoint if endpoint.endswith(/openai/v1) else f{endpoint}/openai/v1) /為什么 boto3 會阻塞事件循環(huán)使用yield配合 boto3 流式輸出并不會讓它變成異步。yield關鍵字只是創(chuàng)建生成器以便增量返回數(shù)據(jù)并不改變底層 I/O 行為# boto3 (BLOCKING) response boto3_client.converse_stream(...) # ← Blocks until server responds for event in response[stream]: # ← Each iteration blocks waiting for next chunk yield event # ← yield returns control, but NEXT iteration blocks again每一次網(wǎng)絡讀取都是阻塞式 socket 操作。在這些等待期間asyncio 事件循環(huán)被凍結(jié)其他協(xié)程無法執(zhí)行boto3: [BLOCK 50ms][yield][BLOCK 80ms][yield][BLOCK 60ms]... ↑ ↑ ↑ Event loop Event loop Event loop frozen frozen frozen aioboto3: [await 50ms] [await 80ms] [await 60ms]... ↓ ↓ ↓ Other requests Other requests Other requests can execute can execute can execute實際影響評估低影響場景阻塞可以接受本地開發(fā)、單用戶使用生產(chǎn)環(huán)境并發(fā) Bedrock 流式請求少于 5 個專用 Bedrock-only 部署且沒有其他異步工作負載。高影響場景強烈建議使用 aioboto310 個并發(fā) Bedrock 流混合異步工作負載數(shù)據(jù)庫查詢、其他 API 調(diào)用共享同一個事件循環(huán)對尾延遲tail latency敏感的延遲敏感型應用。場景boto3 影響單流約 100 tokens總計約 3-5s 阻塞用戶本來就在等待5 個并發(fā)流每個流延遲增加約 20-50%10 個并發(fā)流顯著串行化延遲疊加放大混合工作負載其他異步操作DB、HTTP在 Bedrock I/O 期間被餓死缺少生命周期管理的后果負載下連接池耗盡connection pool exhaustion長運行應用中的資源泄漏resource leaks因連接池耗盡引發(fā)的APITimeoutError尤其在流式場景下。為什么 aioboto3 要求異步上下文管理器與 OpenAI/Anthropic SDK可以同步創(chuàng)建客戶端、稍后可選關閉不同aioboto3 有更嚴格的約束這直接驅(qū)動了本次設計異步客戶端創(chuàng)建aioboto3 的session.client()返回的是ClientCreatorContext而非客戶端本身。只有進入異步上下文管理器async with之后才能拿到真正的客戶端。這是因為憑證解析、端點發(fā)現(xiàn)和 HTTP 會話建立都是異步操作。aiohttp 需要顯式清理aiohttp 的__del__對未關閉的會話只會發(fā)出ResourceWarning并不會真正關閉連接。不調(diào)用__aexit__會遺留已分配的 TCP 連接。由于 aiohttp connector 默認連接數(shù)上限為 100未關閉的客戶端最終會導致新請求等待可用連接進而引發(fā)超時。會話與客戶端的生命周期綁定在 boto3 中可以無限期持有客戶端而在 aioboto3 中客戶端的 HTTP 會話與上下文管理器作用域綁定——退出上下文會將_sessions置為None之后的 API 調(diào)用都會失敗。這些約束決定了不能簡單包裝aioboto3 來對齊 OpenAI/Anthropic 模式而是為所有 Provider 采用 aioboto3 的上下文管理器模式從而在所有地方保證一致性與正確的資源清理。設計決策統(tǒng)一工廠模式Unified Factory Pattern所有 Provider 使用一個返回異步上下文管理器的工廠可調(diào)用對象factory callable。工廠在閉包中捕獲必要的配置每次請求創(chuàng)建全新客戶端。規(guī)格文檔給出了核心骨架ClientT TypeVar(ClientT) class PlaygroundClient(ABC, Generic[ClientT]): _client_factory: Callable[[], AsyncContextManager[ClientT]] async def chat_completion_create(self, ...): async with self._client_factory() as client: # client is typed as ClientT # Provider-specific logic using client ... # Subclasses specify their client type class OpenAICompatibleClient(PlaygroundClient[AsyncOpenAI]): ... class AnthropicClient(PlaygroundClient[AsyncAnthropic]): ... class GoogleClient(PlaygroundClient[GoogleAsyncClient]): ... class BedrockClient(PlaygroundClient[BedrockRuntimeClient]): ...這一骨架在倉庫中的真實實現(xiàn)位于 playground_clients.pyPlaygroundClient(ABC, Generic[ClientT])基類接收client_factory: ClientFactory[ClientT]、model_name、provider三個參數(shù)其中_client_factory類型為ClientFactory[ClientT]。所有子類通過register_llm_client裝飾器注冊到 Playground 注冊表playground_registry.py。工廠類型ClientFactory 與 LLMClientFactory在 model_provider.py 中定義了工廠協(xié)議及其實現(xiàn)class ClientFactory(Protocol[ClientT_co]): def __call__(self) - AbstractAsyncContextManager[ClientT_co]: ... property def rate_limit_key(self) - Hashable: ... class LLMClientFactory(ClientFactory[ClientT]): Factory for creating LLM clients with rate limit key for bucketing. __slots__ (_create, _rate_limit_key) def __init__(self, create: Callable[[], AbstractAsyncContextManager[ClientT]], rate_limit_key: Hashable) - None: self._create create self._rate_limit_key rate_limit_key def __call__(self) - AbstractAsyncContextManager[ClientT]: return self._create() property def rate_limit_key(self) - Hashable: return self._rate_limit_keyLLMClientFactory將創(chuàng)建客戶端的可調(diào)用對象與用于限流分桶的rate_limit_key配對。各 Provider 的限流鍵構(gòu)造函數(shù)也集中在此文件中例如openai_rate_limit_key(api_key, base_url)、azure_rate_limit_key(endpoint, credential)、anthropic_rate_limit_key(api_key, base_url)、bedrock_rate_limit_key(region, credential)、google_rate_limit_key(api_key, base_url)。PlaygroundClient.get_rate_limit_key()直接委托給工廠BedrockClient與OpenAIChatCompletionsClient等子類還會疊加model_name以體現(xiàn)按模型分桶的限流語義見 playground_clients.py。各 Provider 的工廠實現(xiàn)Provider工廠實現(xiàn)OpenAIlambda: AsyncOpenAI(api_keyapi_key, ...)Azure OpenAIlambda: AsyncOpenAI(api_keyapi_key, base_urlazure_base_url, ...)Anthropiclambda: AsyncAnthropic(api_keyapi_key, ...)Google GenAIlambda: Client(api_keyapi_key).aioAWS Bedrocklambda: session.client(bedrock-runtime, ...)在 playground_clients.py 的_get_builtin_provider_client中可以看到各內(nèi)置 Provider 的真實工廠構(gòu)造OpenAIL3363-L3373AsyncOpenAI(api_keyapi_key, base_urlbase_url, default_headersheaders, timeout30)并包裝為LLMClientFactory(create_openai_client, openai_rate_limit_key(...))Azure OpenAIL3413-L3420AsyncOpenAI(api_keyapi_key, base_urlbase_url, default_headersheaders)若沒有 API key則使用azure.identity.aio的DefaultAzureCredentialget_bearer_token_provider生成 token provider以api_keytoken_provider傳入要求openai1.106.0見 L3429-L3444——這比已廢棄的AsyncAzureOpenAI類更簡潔AnthropicL3475-L3480anthropic.AsyncAnthropic(api_keyapi_key, default_headersheaders)其本身實現(xiàn)了__aenter__/__aexit__天然是異步上下文管理器Google GenAIL3516-L3524由于 Google 的AsyncClient.__aexit__簽名不符合AbstractAsyncContextManager協(xié)議返回None而非bool | None源碼用asynccontextmanager顯式包裝asynccontextmanager async def create_google_client() - AsyncIterator[GoogleAsyncClient]: async with GoogleGenAIClient(api_keyapi_key).aio as client: yield clientAWS BedrockL3564-L3583先構(gòu)造aioboto3.Session(...)顯式傳入 access key / secret key / session token 與 region工廠返回aioboto3_session.client(service_namebedrock-runtime)——即ClientCreatorContext必須通過async with進入def create_bedrock_client() - AbstractAsyncContextManager[BedrockRuntimeClient]: return aioboto3_session.client(service_namebedrock-runtime) bedrock_client_factory: ClientFactory[BedrockRuntimeClient] LLMClientFactory( create_bedrock_client, bedrock_rate_limit_key(region, aws_access_key_id) )對于內(nèi)置 Provider憑證解析遵循三級優(yōu)先級請求顯式憑證 → 數(shù)據(jù)庫加密 Secret → 進程環(huán)境變量見_resolve_provider_api_keyL3185-L3217。規(guī)格文檔還特別指出Azure OpenAI 復用AsyncOpenAI加自定義base_url該方式同樣適用于把 Azure AD token provider 作為api_key傳入的場景。消費模式Consumption Pattern所有 Provider 使用一致的消費方式async def chat_completion_create(self, messages, tools, **params): async with self._client_factory() as client: # For OpenAI/Azure/Anthropic: Wrap httpx client for instrumentation client._client _HttpxClient(client._client, self._attributes) # Provider-specific API calls response await client.chat.completions.create(...) # OpenAI / Azure OpenAI response await client.messages.stream(...) # Anthropic response await client.models.generate_content_stream(...) # Google response await client.converse_stream(...) # Bedrock在真實源碼中OpenAI 與 Anthropic 的消費路徑使用AsyncExitStack進入客戶端上下文確保異常路徑也正確清理并在進入上下文后立即用_HttpxClient包裝底層 httpx 客戶端完成插樁記錄請求 URL 到 OTel span見 playground_clients.pyOpenAI 流式與 L2438-L2440Anthropic 非流式。Bedrock 與 Google 則直接async with self._client_factory() as client:L1776、L2926。_HttpxClient是基于wrapt.ObjectProxy的包裝器兼容 openai SDKhttpx2與其他 SDKhttpx只讀取request.url寫入 span 屬性L3051-L3072。收益總結(jié)維度Fresh Client 模式一致性所有 Provider 完全一致資源清理通過上下文管理器自動完成憑證刷新支持 IAM 角色見下文AWS 憑證刷新附錄簡潔性無需包裝器類插樁按請求即時應用just-in-time, per-request類型安全泛型基類確保client類型正確備選方案線程池變通Thread Pool Workaround如果 aioboto3 不可行也可以把 boto3 放到線程池中運行以釋放事件循環(huán)from starlette.concurrency import run_in_threadpool # Runs boto3 in thread, doesnt block event loop await run_in_threadpool(boto3_client.converse_stream, ...)最終選擇 aioboto3 的理由維度Thread Pool boto3aioboto3事件循環(huán)阻塞否在線程中運行否真正的異步線程消耗每個并發(fā)請求一個線程無復雜度同步/異步混合模式純異步擴展性受線程池大小限制隨異步事件循環(huán)擴展規(guī)格文檔的結(jié)論是對大多數(shù)用戶而言 boto3 的阻塞可以接受但對一個異步服務器來說aioboto3 才是正確的架構(gòu)選擇。技術附錄各 SDK 客戶端生命周期細節(jié)本節(jié)給出各 SDK 異步上下文管理器實現(xiàn)的詳細代碼引證對應各 SDK 上游源碼可在各自倉庫中按規(guī)格文檔標注的 commit 與行號查閱。OpenAI SDKOpenAI Python SDK 基于 httpx 實現(xiàn)異步上下文管理器協(xié)議。其__aenter__直接返回自身__aexit__調(diào)用await self.close()async def __aenter__(self: _T) - _T: return self async def __aexit__(self, exc_type, exc, exc_tb) - None: await self.close()close()釋放底層 httpx 連接async def close(self) - None: Close the underlying HTTPX client. The client will *not* be usable after this. await self._client.aclose()Anthropic SDKAnthropic SDK 與 OpenAI 共享相同的基于 httpx 的 base client 架構(gòu)上下文管理器與close()的實現(xiàn)完全同構(gòu)async def __aenter__(self: _T) - _T: return self async def __aexit__(self, exc_type, exc, exc_tb) - None: await self.close() async def close(self) - None: await self._client.aclose()Google GenAI SDKGoogle GenAI SDK 提供獨立的同步/異步客戶端及顯式生命周期方法。AsyncClient的異步上下文管理器調(diào)用aclose()async def __aenter__(self) - AsyncClient: return self async def __aexit__(self, exc_type, exc_value, traceback) - None: await self.aclose()aclose()關閉異步 API 客戶端與 nextgen 客戶端async def aclose(self) - None: Closes the async client explicitly. However, it doesnt close the sync client, which can be closed using the Client.close() method or using the context manager. await self._api_client.aclose() if self._has_nextgen_client: await self._nextgen_client.close()aioboto3 / aiobotocoreAWS Bedrockaioboto3 需要完全不同的模式因為客戶端創(chuàng)建本身是異步的并涉及憑證解析。aioboto3 Session繼承 boto3替換為異步 botocoreclass Session(boto3.session.Session): def __init__(self, ...): if botocore_session is not None: self._session botocore_session else: # Create a new default session self._session aiobotocore.session.get_session()ClientCreatorContext包裝異步客戶端創(chuàng)建class ClientCreatorContext: def __init__(self, coro): self._coro coro self._client None async def __aenter__(self) - AioBaseClient: self._client await self._coro return await self._client.__aenter__() async def __aexit__(self, exc_type, exc_val, exc_tb): await self._client.__aexit__(exc_type, exc_val, exc_tb)AioBaseClient 上下文管理器管理 HTTP 會話async def __aenter__(self): await self._endpoint.http_session.__aenter__() return self async def __aexit__(self, exc_type, exc_val, exc_tb): await self._endpoint.http_session.__aexit__(exc_type, exc_val, exc_tb)HTTP Session 生命周期aiohttp connector 清理async def __aenter__(self): assert self._sessions is None self._sessions {} return self async def __aexit__(self, exc_type, exc_val, exc_tb): assert self._sessions is not None, Session was never entered self._sessions.clear() await self._exit_stack.aclose() # Make _sessions unusable once context is exited self._sessions None注意最后一行退出上下文后_sessions被置為None客戶端變得不可用這正是會話生命周期綁定上下文作用域的直接證據(jù)。為什么 aioboto3 與 OpenAI/Anthropic 不同維度OpenAI/Anthropicaioboto3客戶端創(chuàng)建同步異步憑證解析等HTTP 庫httpxaiohttp連接管理內(nèi)部、惰性顯式、通過上下文管理器憑證處理靜態(tài) API key可能過期IAM 角色、STS tokenaioboto3 強制使用上下文管理器原因有三一是異步客戶端創(chuàng)建憑證解析、端點發(fā)現(xiàn)、連接建立無法在__init__中完成二是 aiohttp 需要顯式清理與可依賴垃圾回收的 httpx 不同aiohttp 連接池必須顯式關閉三是憑證刷新對 IAM 角色而言新建客戶端能自動獲取刷新后的憑證。boto3 vs aiobotocore代碼級對比botocore同步——阻塞式 socket 讀取def read(self, amtNone): Read at most amt bytes from the stream. try: chunk self._raw_stream.read(amt) # ← Blocking urllib3 socket read except URLLib3ReadTimeoutError as e: raise ReadTimeoutError(endpoint_urle.url, errore) return chunkself._raw_stream.read()會阻塞整個 Python 線程從而阻塞 asyncio 事件循環(huán)直到數(shù)據(jù)從 socket 到達。boto3 Session.client()——直接返回客戶端return self._session.create_client(service_name, **create_client_kwargs)boto3 的Session.client()同步立即返回客戶端底層是帶阻塞 urllib3 連接的同步客戶端。aiobotocore Session.create_client()——包裝為異步上下文管理器def create_client(self, *args, **kwargs): return ClientCreatorContext(self._create_client(*args, **kwargs))aiobotocore 把異步客戶端創(chuàng)建包裝在ClientCreatorContext中強制async with使用。真正的客戶端創(chuàng)建在_create_client()中異步完成包括異步憑證解析。aiobotocore異步——非阻塞 awaitasync def read(self, amtNone): Read at most amt bytes from the stream. try: chunk await self.__wrapped__.content.read( amt if amt is not None else -1 ) except asyncio.TimeoutError as e: raise AioReadTimeoutError(endpoint_urlself.__wrapped__.url, errore) return chunkawait關鍵字把控制權交還給事件循環(huán)。底層 aiohttp 使用 asyncio futureasync def _wait(self, func_name: str) - None: waiter self._waiter self._loop.create_future() # ← Create asyncio future try: with self._timer: await waiter # ← Yield to event loop until data arrives finally: self._waiter None async def read(self, n: int -1) - bytes: while not self._buffer and not self._eof: await self._wait(read) # ← Suspends coroutine, other tasks can run return self._read_nowait(n)關鍵差異在于await self._wait(read)掛起協(xié)程并把控制權交還事件循環(huán)future 在數(shù)據(jù)經(jīng) socket 回調(diào)到達時被解析協(xié)程隨即恢復。等待期間處理其他請求的協(xié)程可以正常執(zhí)行。附錄AWS 憑證刷新Credential RefreshAWS 憑證分為兩類刷新行為截然不同。決策邏輯botocore 會話中的決策邏輯如下簡化if aws_access_key_id is not None and aws_secret_access_key is not None: # Explicit credentials → static Credentials (no refresh) credentials botocore.credentials.Credentials( access_keyaws_access_key_id, secret_keyaws_secret_access_key, tokenaws_session_token, ) else: # No explicit creds → use credential resolver chain # This may return RefreshableCredentials for IAM roles credentials self.get_credentials()靜態(tài)憑證顯式傳入當顯式憑證傳給會話時session aioboto3.Session( aws_access_key_idAKIA..., aws_secret_access_key..., aws_session_token..., # Optional, for temporary credentials )這些使用 botocore 的Credentials類僅存儲值class Credentials: Holds the credentials needed to authenticate requests. def __init__(self, access_key, secret_key, tokenNone, ...): self.access_key access_key self.secret_key secret_key self.token token不會自動刷新。若憑證過期API 調(diào)用將失敗并拋出ExpiredTokenException??伤⑿聭{證IAM 角色對于 IAM 角色EC2 實例配置文件、ECS 任務角色、Lambda 執(zhí)行角色botocore 使用RefreshableCredentialsclass RefreshableCredentials(Credentials): Knows how to refresh itself. def __init__(self, ..., expiry_time, refresh_using, ...): self._refresh_using refresh_using # Callback to fetch new credentials self._expiry_time expiry_time self._advisory_refresh_timeout 15 * 60 # 15 min before expiry self._mandatory_refresh_timeout 10 * 60 # 10 min before expiry每次訪問憑證時都會調(diào)用_refresh()def _refresh(self): if not self.refresh_needed(self._advisory_refresh_timeout): return # Credentials still valid, no refresh needed if self._refresh_lock.acquire(False): try: self._protected_refresh(is_mandatory...) finally: self._refresh_lock.release()_refresh_using是拉取新憑證的回調(diào)在過期前 15 分鐘觸發(fā)建議刷新advisory過期前 10 分鐘觸發(fā)強制刷新mandatory并通過鎖防止并發(fā)刷新競爭。對 Phoenix 的影響自定義 Provider 配置存儲的是數(shù)據(jù)庫中的顯式憑證見 model_provider.py 中AWSBedrockAuthenticationMethodAccessKeys與各 Provider config 的get_client_factory。這些是靜態(tài)憑證不會自動刷新。如果用戶配置的是會過期的臨時憑證STS token必須手動更新存儲的憑證。使用 IAM 角色的部署如 Phoenix 運行在帶實例配置文件的 EC2/ECS 上會從環(huán)境解析憑證并自動刷新。但是自定義 Provider 工廠中的without_env_vars(AWS_*)環(huán)境變量隔離見 model_provider.py同樣適用于OPENAI_*、ANTHROPIC_*、GOOGLE_*、GEMINI_*等前綴實現(xiàn)見 env_vars.py意味著IAM 角色憑證只對內(nèi)置 Provider 生效不會被自定義配置使用——這是為了防止服務器環(huán)境中的憑證被自定義端點竊取SSRF/憑證外泄防護見_resolve_provider_api_key的注釋與校驗邏輯playground_clients.py。參考資料與延伸閱讀規(guī)格文檔 async-llm-client-lifecycle.md 的 References 部分按 commit 固定引用了 boto3、botocore、OpenAI Python SDK、Anthropic Python SDK、Google GenAI Python SDK、aioboto3、aiobotocore、aiohttp 等上游倉庫的源碼位置可在各自倉庫按對應 commit 與行號核對本文中的代碼片段。倉庫內(nèi)的相關實現(xiàn)文件包括客戶端基類與各 Provider 實現(xiàn)playground_clients.py客戶端注冊表playground_registry.py工廠協(xié)議、限流鍵與自定義 Provider 配置model_provider.py環(huán)境變量隔離工具env_vars.py【免費下載鏈接】phoenixAI Observability Evaluation項目地址: https://gitcode.com/gh_mirrors/phoenix13/phoenix創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
专区无日本视频高清8| 五月丁香婷婷综合网| 丁香五月在线视频黑人| 插插干干干色| 亚洲精品视频电影| 超碰成人黄色网| 婷婷丁香午夜综合影视| 激情九九六月激情免费视频| 中文成人在线| 996热re视频精品视频| 啪啪一区| 欧美精品A片一区在线观看| 五月99久久| 9九热视频| 91狠狠色丁香婷婷综合久久狠丁香综合久久精品| 五月丁香婷庭在线| 五月天丁香综合久久国产| 99热这里只有精品22| 99超在线| 亚洲精品网站色视频| 精品香蕉99久久久久网站| 色噜噜狠噜噜视频| 99热这里只有是亚洲国产| 亚洲综合欧美色丁香婷婷888月图片| 激情六月丁| 热久久91| 99热1| 成人美女网| 国产精品色婷婷久久久精品| 思思热AV| 国产精品日韩十五区| 黄网免费观看| 欧美 日韩 成人| 久久精品99国产精品日本| 天天操人人干| 五月婷激情| 激情综合五月激情XXXX| 日韩狠狠色| 超碰成人黄色网| 亚洲另类电影| 丁香五月在线| 深爱激情网综合| 九九色综合| 激情淫乱男女| 丁香色影院| 蜜臀AV在线观看| 亚欧州精品视频| 第六色在线| 99久久久免费| 天天做天天爱天天爽夜夜揉| 99自拍视频在线观看| 99视频啪啪| 亚洲无AV在线中文字幕| 国产精品久久欧美久久一区| 亚洲中文字幕AV在线| 婷婷五月色播| 风流少妇A片一区二区蜜桃 | 99在线观看精品| 手机免费福利视频| 五月激情六月宗合| 婷婷五月天影院| 亚洲综合激情五月| 五月停停色色丁香| 夜夜躁爽日日| 变态 另类 在线 | 色五月综合| 深爱激情五月婷婷| 丁香六月色婷婷| 亚洲一区二区无码蜜乳av| 婷婷色无码| 亚州激情网| 美女va| 日韩成人AV在线播放| 天天久久婷婷| 99热天堂| 狠狠干天天内射| 五月在线婷色| 九九综合久久| 久久综合丁香| 老司机伊人| 狠狠色综合网站久久久久| 色婷婷777狠狠| www.97干视频| 久鲁鲁色网 | 丁香五月Av| 夜夜躁狠狠| 久久五月天色婷婷| 五月婷婷开心亚州在线| AV在线大香蕉| 亚洲精品又粗又大又爽A片| 99re在线观看| 日本A片一区| 婷婷伊人视婷婷婷| 只有精品视频在线观看| 亚洲 五月 婷婷 成人| 99热这里只有的精品视| 久久婷婷综合网| 亚洲成人综合在线| 色色丁香婷婷五月天| 久热亚洲| 激情啪啪五月天| 六月丁香婷婷色69| 99人碰碰碰| 九九久久精品| 成人色图情色成人网 www.5b5b5bcom 五月天 | 色999五月色| 丁香五月天人体| 狠狠狠狠狠草| 久久婷婷五月| 大香蕉伊在| 新97人人上人人| 妻久久久久| 99国产视频网| 大地资源色婷婷视频在线| 人碰人人人玩91| 99久热精品在线| 亚洲人成网亚洲欧洲无码久久| 九九热思思热| 97人人看| 超级碰人人操人人干| 熟女网站久久| 99这里只有精品|v| 亚洲欧洲中文日韩久久AV乱码| 伊人大香蕉毛片| 色射影院| 丁香婷婷激情| 婷婷五月另类网站| 九九久久综合网站| 亚洲精品无码一区二区| 九月丁香婷婷| 婷婷伊人综合中文字幕| 男人天堂 久久| 99热成人精品| 婷婷五月天激情文学| 婷婷综合中文| 激情综合九| 9|无码久久久久久| 日韩超碰在线| 狠狠综合色网| 五月天色区| 久久精品一区二区三区四区| 丁香六月婷月91婷月| 色婷婷丁香| 久久久99精品免费观看| 亚洲人人96@| 99热这里只有精| 噼里啪啦在线观看免费完整版视频 | 色五月丁香五月五月婷婷| 亚洲AV色婷婷人禽五月天| 色五月婷婷网| 五月丁香六月久久| 这里只有精品视频在线| 深爱激情中文五月天av| 99热首页| 激情文学久久| 无码操B| 涩九九九九| 色色色色色热| 79精品视频在线观看,| 成人精品视频99在线观看免费| www婷婷| 丁香五月婷婷偷拍| 天堂资源欧日浪女在线播放| 热热久久精品视频| 成人片黄网站色大片免费毛片| www.色综合| 性色五月天| 99爱操| 人人舔天天| 中字幕视频在线永久在线观看免费 | 五月天婷基地| 久久99热网| 操操操av| 92久久久| 婷婷综合五月天激情| 婷婷久久爱| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 激情深爱综合| 天天搞天天色综合| 国产精品18久久久| 久久婷婷六月综合资源| 成人网在线观看视频| 色五月婷婷av| 六月丁香基地| 69热91天堂| 思思色综合网站| 日日夜夜狠狠操| 婷婷久久五月天丁香| www亚洲无码| 天天色视频| 欧美性久| 婷婷五月天影院| 亚色网站小视频| 国产精品久久久久久久久久久久 | 激情com| 黄网在线播放| 亚洲夜五月| 一级性爱视频| 色综合色综合网| 亚洲综合在线网站| 亭亭玉月丁香| 婷婷基地爱| 日本少妇AA一级特黄大片| 欧美狠狠地| www.久久9| 五月丁香六月激情综合| ss99热| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 呦呦AV| 激情五月天婷婷播播久久综合91| 色噜噜狠噜噜视频| 就是色婷婷五月亚洲色| 婷婷亚洲久久| 色色五月丁香| 17.c黄色| 婷婷五月天天天日日夜夜| 亚洲Av成人在线观看| 婷婷五月丁香手机在线视频| 熟妇内谢69XXXXXA片| 激情久久综合网| 丁香伊人网| 色播五月天天| 91精品久久久久久77777| 久久99久久99久久99人受| 激情丁香网| 99热国产婷婷| 91人妻PORNY九色大屁股| 女力报到正好爱上你| 日本视频99| 99超级碰免费视频| 久热大香蕉| 激情都市五月天| 五月婷婷激情久久| 亚洲成人网址在线观看| 性色做爰片在线观看WW| 日韩视频99| 久久人妻人人| 天天狠天天叉| 亚洲第一精品成人999久久精品| www.97碰碰com| 99爱视频精品| 99精品免费视频| 乱色色色| 久久人妻在线| 精品人妻久久久久久久| 丁香婷婷丁香五月欧美人| 国产性爱一级| 狠狠色婷婷色| 欧美婷婷综合| 国产伊人大香蕉| 欧洲第一无人区观看| 亚洲人成色A777777在线观看| 丁香婷婷五月六月天| 五月天婷婷色| aⅤ79成人片| 亚洲成人影视在线观看| 久久婷婷成人综合色怡春院| 日韩色情亚洲五月天婷婷| 99色这里| 777米奇影视第四色| 9月色婷婷| 五月天综合图片| 99热这里只有精品23| 丁香五月婷婷亚洲人| 久超免费视频| 婷婷六月天| 国产乱人偷精品人妻A片| 久久久中文| 亚洲激情网| 亚洲狠狠操| 6080av| 丁香六月久久| 五月欧美色播| 六月丁香婷婷五月天| 大香蕉人人人| 九九热自拍| 可以直接看的av| 日日夜夜干| 五月激情小说网| 色爱终和网| 亚洲激情综合五月婷婷啪啪| 日本五月婷婷| 五月天成人综合| 久久人人九九| 狼人狠狠操| 99热亚洲精品| 婷婷六月色| 强壮公让我夜夜高潮A片视频| 粉嫩AV久久一区二区三区| 99色色网| 五月婷婷综合在线视频| 国产三级片91| 亚洲色婷婷色| 婷婷丁香色无五月| 天天摸天天舔天天爽| 婷丁五月| www.天天日| 色5月婷婷色| 色色婷婷五月天| 色色色99| 七七久久婷婷| 日韩色色色色色| 日韩99色| 伊人玖玖网| 婷婷五月激情丁香| 国产亚洲精品久久久久久郑州| 丁香激情五月天| 99热这里只有精品青草| 啪啪啪丁香五月| 97碰人人操| 久久激情网| 人妻熟人中文字幕一区二区| 337p大胆噜噜噜噜噜91Av| 有码一区二区三区| 91色婷婷综合久久中文字幕二区| www.五月天社区| 婷婷狠狠五月综合| 91凹凸在线| 深情六月婷婷综合久久| 26uuu精品国产| 我要射综合| 婷婷射图五月天| 狠狠干 狠狠操| www久热com| 婷婷婷婷色| 亚洲无码99| 激情网综合| 亚洲成人无码片| 亚洲综合五月天婷婷| 丁香五月激情久久麻豆| 久久sp免费视频| 丁香婷婷五月综合影院| 亚洲婷婷丁香五月在线| 国精产品一区二区三区| 欧美这里只有精品| AV九九| 六月丁香五月天| 99热官网| www.99操.com| √天堂资源在线人妻熟女| 亚洲永久四色| 精品久久久久久久人妻| 天天爽天天透天天爱| 深爱激情九九五月天 | 人妻啪啪啪| 狠狠做五月| 色久在| 婷婷成人小说综合| 色九月婷婷综合| 五月天婷婷影院| 91性交在线播放| 免费成人网在线观看| 久久婷婷激情| 亚洲视频伍月婷婷| 99热国内精品| seuuu婷婷| 狠狠色丁香久久婷婷综合五月| 九九99九九99| 欧美激情综合色综合色| 五月天色色网站| 风流少妇A片一区二区蜜桃 | 成人日韩欧美| 碰碰碰碰碰99| WWW、日本色丁香co m| 日日夜夜爽| 中文AV在线播放| 色婷婷基地 | 91色碰| 天堂婷婷五月在线| 久9久成人精品视频| 五月丁香综合网| 日本A片一区| 婷婷五月丁香基地在线视频官网| 97 A I色色| 99视频在线精品| 无语停婷丁香网| 五月天婷婷色色| 天天射夜夜骑| 九九无码| 九九热啪啪| 色情久久久| 色综合色五月| 久久五月天免费网站| 麻豆科斗777| 97 A I色色| 99九九精品| 婷婷伊人綜合| 婷婷五月六月激情| 久草热8精品视频在线观看 | 五月天婷婷在线播放| 国内自拍1区| 91 影音先锋| 色哟哟精品| 五月激情网站| 综合AV网| 丁香五月六月婷婷自拍| 99精品在线观看视频| 美女91一起草| 狠狠草狠狠草| 国av网| 99热99思午夜精品| 另类视频一区| 成人综合AV| 五月丁香六月婷婷久久久综合| 99热在线播放| 碰碰91| 亚洲成人无码网站| 婷婷成人在线| 九九在线精点品| 91在线视频观看午夜福利| 开心婷婷五| 五月丁香婷婷啪啪| 91chinese在线| 26UUU欧美激情一区二区| A片试看120分钟做受图片| 婷婷综合亚洲| 熟女激情网| 丁香久久久| 久久这里只精品| 婷婷丁香精品视频在线观看| 天天爽日日爽夜夜爽| 三十熟女| 婷婷五月色丁香在线看| 国产精品18久久久| 丁香五月婷婷亚洲综合精品在线| 五月丁香色综合| 久久五月综合| 啪啪啪综合网| 呦呦v线| 欧美激情性做爰免费视频| 99精品激情| 91精品久久久久| 在线中文字幕av| 精品人妻伦一二三区久| 丁香婷婷色九月| 蜜臀av粉嫩av懂色av| 人人操人人爽成人AV| 99热国产免费| AAA久久| 丁香五月激情啪| 玖色色综合| 99精品无码| 婷婷射图五月天| 色爱综合网| 99网址在线看| 99视频内射三四| 电影蜘蛛女| 无码激情AAAAA片-区区| 深爱激情网五月天| 久久99精品久久久| 六月婷婷久久| 九九色大香蕉| 色色婷婷五月| 97婷婷丁香五月天激情图片| 亚洲日本三级片| 五月天狠狠网| 日本色色色| 99热这里只有精品9| 97色伦另类图片小说视频 | 色七色九九| 99热个人在线| 久久视频婷婷| 91操操| 亚洲综合色色色| 丁香婷婷激情五月色| 成人做爰黄A片免费看直播室男男| 五月丁香怕啪啪| 99久久九九| 另类伊人婷婷| 久久久久9| 亚洲人人操BD| 97精品在线| 亚洲日韩一页精品发布| 天天插综合网| 99久热这里有精品| 久久五月婷婷视频| 99爱爱| 玖玖资源站蜜臀| 丁香蜜臀黄色婷婷五月天| 99热伊人| 97干综合网| 色欲婷婷夜夜| 激情视频综合| 95精品区一区二| 蜜桃人妻无码AV天堂三区| 天天插天天插天天操| 99热每日| 婷婷深爱五月天| 婷婷丁香五月亚洲综合网在线视频观看| 国产avapp 网| 综合色在线| www.婷婷五月天| 伊人婷婷色激情丁香| 久久超视频| 嫩草AV久久伊人妇女超级A| 六月婷婷中文字幕| 六月五月久久丁香| 丁香五月婷婷亚洲综合精品| 午夜天堂一区人妻| 天天综合网91| 中文字幕乱轮| 欧美成人无码高清一区二区三区| 五月婷婷六月丁香玖玖玫瑰91| 99精品在线播放| 亚洲VA口| 久久色这里只有精品| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 97人人爱人人操| 性做爰A片免费视频A片直播| 激情五月综合| 久久丝袜婷婷| 另类综合网| 婷丁香久综合| 97干在线视频| 97色色综合| 爱穴久久| 超碰免费人| 天天骑天天操| 久操大香蕉| 开心婷婷五月天激情网| 思思热99在线| 操操操av| 99热福利| 97干在线| 色综合区| 激情婷婷久久| 婷婷综合在线播放| av在线不卡播放| 丁香六月啪啪| 国产 码在线成人网站| 99久久玖玖| 中文字幕丁香五月| 色婷婷婷av| 欧美亚洲成人在线| 婷婷五月精品中文| OUMEIRIHANCHENGREN| 亚洲视频一区| 无码免费人妻A片AAA毛片西瓜 | www.久久爱.com| 婷婷深爱五月天| 另类五月激情| 99爱在线观看视频| 99热免费看| 婷婷激情丁香六月| 乱色色色| 色五月婷婷在线观看| 婷婷5月九九| 六月丁香激情婷婷| 久久人妻视步| 天天爽夜夜爽夜夜爽精品视频| 丁香5月婷婷| 五月天玖玖狠狠色色| 婷婷五月天激情视频| 五月丁香综合久久| 五月丁香六月激情综合在线| 伊人丁香婷婷东京| 五月深爱激情网| 五月婷婷六月少妇激情| 久久精彩免费视频| 色99热| 成人 在线 日韩| 91久久电影| 精品久久9| 狠狠色综合网| 婷婷综合视频| 丁香婷婷天堂| 五月丁香A∨在线| 91传媒无码人妻精| 加勒比日本一区二区三区| 六月激情丁香一道本7777| www.久久综合| 天天弄天天爽| 六月丁香五月激情网| wwwC0maV五月花| 五月天精品视频| 五月婷婷九| 欧美丁香五月天| 五月婷婷色吧!| 999热成人在线综合网| 丁香女人五月天| 久久午夜理论| 97婷婷五月| 色播五月天激情| 超碰人人干| 夜夜干 夜夜操| 色狠狠色噜噜AV天堂五区| 日本婷婷激情四射中文字幕在线观看| 国产暴力强伦轩1区二区小说| 日本精品人妻无码77777| 婷婷香草网| 五月丁香在线观看国产| 91在线观看www| 六月婷色| 国产VA播放| 久久五月婷天天干| 99热在线观看精品| 狠狠操狠狠操AV| 内射综合网| 欧美顶级少妇做爰HD| 国产人人操| 激情色色| 超碰在线网站9| 久婷婷五月天影院| 激情五月激情综合网一级丸片| 丁香六月无码| 欧美色色色色色| 色综合久久久综合久久网 | 欧美日韩99| 99在线免费视| 五月丁香在线| 91精品激情9| 怡红院成人AV| 北条麻妃伊人 | 97好吊操| 久久婷婷视频| 九九九九中文字幕| 亚洲AV激情五月综合网| 狠狠操天天干| 成人做爰高潮A片免费视频 | 激情五月婷婷伊人| 九九精品99| 婷婷综合中文| 丁香婷婷五月六月久久| 婷婷五月天成人综合网| 丁香五月性爱| 一本久道综合99| 五月中旬婷婷丁香六| 99ri精品视频在线观看| 欧美日韩国产一二区| 久久五月婷婷电影| 伊人五月天| 新97人人上人人| 99久久网站| 91大屁股在线| 伊人五月天| 五月婷婷草| 开心五月婷婷激情网| 婷婷激情视频| 色婷婷综合电影| 久热re在线视频| 天堂婷婷丁香六月网| 婷婷久久久| 激情综合婷婷久久| 男女激情久久| 久久久久久18| 五月综合激情图片| 99热这里只有精彩| 色婷婷狠狠久久YY| 夜夜综合色| 免费无码毛片一区二区A片| 色六月婷婷| 日日撸夜夜操| 大香蕉久久久久久久久| 99亚洲大片精品永久在线观看| 操一操干一干| 影音先锋噜一噜| 色色色色色色网| 国产精品天天狠天天看| www.狠狠| 91蜜桃婷婷狠狠久久综合9色| 色综合偷拍| 99re思思热久久| 五月丁香婷婷激情图片| 色婷婷五月天综合网| 日韩免费视频| 黄涩毛片| 五月天丁香| 91无码视频| 99狠狠色| 亚洲无码另类| 九九热在线视频观看| 97五月天婷婷综合激情网| 天天色宗合| 亚洲乱啪| 五月婷婷激情中文字幕| 91久久五月天| 夜夜干天天操| 色婷婷777狠狠| 九九色色网| 亚洲情色一区| 99久久久| 综合激情网五月激情| 日韩999| www.sd-xiangsu.cpm| 婷婷五月天影院| 人人干天天操五月丁香| 五月天婷婷综合色| 无码 色| 日本欧特黄色刺激一区影视久精品无码| 五月丁香无码| 久久桃花网色婷婷| 欧美成人性爱网| 91在线视频综合| 久久婷婷啪啪视频| 五月天丁香啪啪综合| 啪啪啪综合网| 国产熟女日日骚五月丁香爱| 大香久久综合网| 99热这里只有精品55| av在线激情| 99热只有| 就爱射中文字幕资源网| 日韩xx在线| av在线免费网站| 婷婷丁香人妻天久久| 欧美成人精品A片免费一区99 | 五月天久久网站| 色一情一乱一乱91Av| 色情五月婷婷| 丁香五月婷婷丫| 色婷婷久久9.com| 深爱激情综合网| 色五月色五天色情网| 色999亚洲人成色| 五月婷婷啪啪网| 婷婷欧美激情| 亚洲中文字幕网| 精品51XX| 婷婷五月丁香综合| 99婷婷狠狠成为人免费视频| 日日舔夜夜操| 亚洲av网站| 久久久久9999| 婷婷五月天堂| 激情综合网络插| 婷婷丁香六月天激情四射网| 亚洲精品视频在线播放| 五月色婷婷AV| 日本三级中国三级99| 国产精品VIDEOSSEX久久发布| 丁香六月成人| 丁香六月天婷婷在线| 超碰99成人在线| 亚洲成人影视在线观看| 五月婷婷综合热| 97丁香视频| 狠狠狠狠狠狠色| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 综合大香蕉| 夜夜操狠狠操天天操| 猫咪伊人久久| 久久婷婷原创视频| 丁香六月欧美| 99热6色| 伊人丁香六月婷婷| 香蕉网久久| 丁香六月婷婷色XXXX| www.99久| 99热精品在线免费观看| 婷婷的99视频网站| 91九九热| 色色国产| 五月丁香六月欧美综合网站| 天天舔天天| 99热啪啪| 超碰色人妾| 五月婷婷六月激情| 婷婷五月激情欧美| 第四色婷婷丁香五月| 天天爽成人综合网站| 草榴视频网| 日韩啪啪视品| 国産精品| 五月天激情视频| 婷婷激情鹿城五月天| 亚洲婷婷在线播放十月| 超碰色综合| 亚洲AV永久无码影院黑人| 国产婷婷色综合AV蜜臀AV | 丁香啪啪| 91视频精品99| 丁香六月婷婷| www.久久av.com| 婷婷基地五月色| 色色色在线免费视频| 综合色图区| 精品亚洲国产成AV人片传媒| 97超碰色| 六月婷欧美丁香综合| 三十熟女| 成人无码髙潮喷水A片| 久久九九免费视频| 99九九在线视频| 五月婷婷在线免费观看| 洗浴中心操B视频| 综合深爱五月| 思思热再线视频| 天天拍夜夜爽日日| 丁香五月 综合| 国产亚洲在线| 激情婷婷五月天。| www色色色com| 另类视频一区| 超碰操日| 任你弄在线视频免费| 一本大道熟女人妻中文字幕在线| 久久色情| 色色激情网| 久久婷婷综合网| 人妻综合网| 九九色逼| 日韩aaaaa| 色丁香久久| 亚洲婷婷91丁香| 欧美性丁香色色五月天干干| 五月婷婷影视| 啄木鸟黑丝一区二区| 99re热精品在线视频| 五月婷五月婷伊人伊人五月婷| 99婷婷| 狠狠做六月爱婷婷综合aⅴ| 97人人操| 激情综合网丁香| 六月丁香成人| er99免费视频在线| 激情网第四色| 99热这里只有精品搜| 日本操B视频| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 丁香五月婷婷五月天| 99在线视频播放| 九热视频| 久草热8精品视频在线观看| 国产真人做爰视频免费| 婷婷五月花.97| 九一九九黄色| 五月天色色婷婷| 天天色月| 九九九九九九九热| 成年人丁香五月| 婷婷丁香五月在线播放| 色婷婷五月综合在线| www.99视频| 五月天激情婷婷| 久cao香蕉影院| 色原狠狠综合| 99热一本久道| 狠狠爱激情网| 99热 这里只有精品 国产 日韩| 婷婷五月天无码视频| 五月天影院婷婷在线观看| 丁香六月婷婷综合麻豆| 亚洲丁香五月在线观看| 激情五月天啪啪| 五月丁香激情四射| 无码日本精品XXXXXXXXX| 日本三级第一页| 五月天婷婷操逼视频| 狠狠操天天操| 99热这里只有精品66| 免费亚洲婷婷| 五月天社区| 色碰97| 激情精品久久| WWW,色五月| 成人av中文字幕| www.婷婷五月天啪啪| 色综合伊人网| 婷婷色导航| 91色色色视频| 丁香九月综合| 综合色五月| 久久538| 久久欧洲综合网| 五月天六月婷| 五月香婷婷| 精典久久| 色婷婷五月视频| 99丁香五月| 久久HD| 色综合网上班开心婷婷久久| 色婷婷9| 婷婷热婷婷色| 9月色婷婷| 丁香五月色情| 五月丁香激情综合啪啪| 婷婷色女| 天天爱天天爽| 五月丁香婷婷五月色| 婷婷六月色开| 色五月婷婷五月天激情综合| 亚洲va成人va成人va在线观看| 殴美97色| 狠狠艹狠狠艹| 精品99在线观看| 色婷婷8| 色婷婷综合久色AV五色最新| 五月丁香婷婷综合网| 色婷婷九月| 国产在线aaa片一区二区99| 超碰在线网站| 99热这里只有精品 搜| 亚洲综合九九| 久久无码成人| 丁香五月综合色婷婷| 99狠狠| 色婷婷久久7777| 亚洲看av的网站| 免费视频无码| 婷婷天堂综合| 久久婷婷五月综合| 色九九中文字幕| 婷婷六月婷婷| 五月丁香六月激情在线| 欧美天堂久久| 色婷婷五月天偷拍| 国产看真人毛片爱做A片| 99ri精品| 91碰在线| 99玖玖在线视频| 五月婷婷开心丁香| 五月伊人91| 丁香久久五月天视频在线观看| 亚洲激情AV| 五月丁婷香| 色墦五月丁香| 色欲丁香| 亚洲第一成人无码A片| 色情开心五月| 激情五月天色婷婷| 婷婷五月天桃花网| 国产成人VA| 九九99久久| 丁香五月综合高清在线| 99视频精品| 婷婷色在线播放| 婷婷五月天在线视频网站| www超碰com| 九九色视频| 五月天五月色婷婷综合| 大香蕉九九| 婷婷性爱| www五月| 操操操www.com| 开心五月婷婷激情| 97色碰| 色吧五月婷婷| 狠狠干最新地址| www。狠狠干。com| 国产高潮A片羞羞视频涩涩| 99热99热在线观看| 校花娇喘呻吟校长陈若雪视频| 九九在线免费观看| 色色亚洲99com| 久久99激情丁香婷婷小说网| 99超碰在线免费| 9这里只有精品| 99a级片| 久9热视频在线观看| 五月天色色婷婷| 色~性~乱~伦~噜| 激情五月五月婷婷| caobi四区| 日韩性爱AV| 婷婷色情五月| 99人人看| 色五月成人| 婷婷激情五月天天天开心| 最近中文字幕2019视频1| 五月丁香色婷婷基地| 日日影院 | 久久九九在线视频| 九伊人网| 女同激情久久av久久| 久久曰曰| 亚洲乱码日产精品BD| 激情五月亚洲| 9999综合99综合人| 丁香婷婷六月天| 婷婷97碰碰| 久久久久亚洲AV成人无码电影| 人伦30P| 99综合网| 噜噜色噜噜网| www色婷婷| 激情99| 青草激情综合| 亚洲一级AV在线免费播放| 综合色色婷婷| 艹| 天堂久久大香蕉| 丁香啪啪| 欧美五月丁香啪啪响视频| 色五月五月天色婷婷色五月| 91尤物九色在线| 亚洲无AV在线中文字幕| 欧美成人精品一区二区| 超碰在线观看成人视| 天天草天天爽| 99re这里只有精品视频了| www.91热久久| 粉嫩av懂色av蜜臀av熟妇| 99色综合网| 99国产精品久久久久久久久久久 | 国产99久久久国产精品免费看| 国际国外精品欧洲南美洲专区无码不卡| 偷拍九九热| 妻久久人久久| 99在线精品视频| 亚洲狠狠爱婷婷| 综合婷婷久久| 色婷婷六月天在线| 在线99热| 久久久.www| 久久9久| 人人摸人人干人人做| 99操碰| 婷婷色五月91啪啪| 超碰在线中文字幕| 久久亚洲色导航| 丁香五月婷婷欧美激情-中文天堂最新版在线观看 | 天天日天天舔| 五月丁香成人视频| 国产成人VA| 久9免费视频| 日本91在线播放| 99热国内精品| 无码色色| 婷婷五月激情基地| 91视频五月丁香| 色婷婷六月| 亚洲人妻Av| 婷婷狠狠五月综合| 99九九精品| 五月婷婷日| 欧美A级成人婬片免费看理论| 91精品久久久久| 五月婷婷激情久久| AV五月丁香| 天天性视频| www.五月婷| 狠狠爱深色婷婷综合| 国产超碰在线| 五月天婷婷AV| 婷婷伊人久久综合| 天天日夜夜B久久| 色月九九| 天天婬色综合| 色天堂婷婷| 综合色色网| 五月婷婷欧美| 天天日天天摸| 欧美VA在线观看| 99久久思思| 激情综合色| 丁香五月成人丝袜| 丁香五月亚洲综合丝袜| 五月综合视频| 婷婷五月色天| 色三级色三级| 先锋资源91| 天天色天天操天天射| 日日插日日干| 日韩欧美骚货| 五月天婷婷影院影院| 日日色五月天| 丁香色情五月天| 综合AV在线| 国产精品24r| 人人操9| 7777国产盗摄农村女人| 五月天婷婷綜合院| 99爱在线视频| 久久99网| 日本色五月| 无码区婷婷五月花开| 79色色| 色色亚卅| 国产熟女日日骚五月丁香爱| 森林影视大全,最好看的2019年视频 | 亚洲精品va| 激情婷婷丁香五月天小说| 日韩啪啪视频| www久| 九九热这里只有精品5| 99热天堂| 免费人人操| 色玖玖玖| 欧类av怡春院| 九九九九精品精| 久久久天堂国产精品女人| 婷婷97色| 狠狠色中色| 91干网站| 色婷婷8| Blackedraw视频一区二区| 97干干干丁香| 我淫我色婷婷五月天激情四射| www.99riav99| 日本丰满久久| 丁香五月婷婷久久久| 五月天婷婷激情网| 97在线/亚洲| 婷婷五月大| 婷婷五月天播| 岛国av网| 国产无套精品一区二区| 99这里都是精品6| 五月丁香在线| 一级性爱视频| 婷婷丁香六月天| 国产乱子轮XXX农村| 99久久国产综合精品五月天喷水\| 第四色色六月色综合| 久人操| www.久久99| 97色伦另类图片小说视频 | 99人人操人人操人人精| 啪啪一区| 狠狠狠激情网| 亚洲精品国产精品乱码视99| 婷婷五月天激情五月天深爱五月天| 狠狠狠狠狠狠| 色婷婷免费观看| 嫩草AV久久伊人妇女超级A| 国产偷人爽久久久久久老妇APP| 99热xx| 新激情婷婷| 99视频热99| 9精品视频在线观看| 婷婷五月天av网| 婷婷综合色五月天| 免费观看的av| 久99热| 欧美色偷偷大香| 婷婷久久亚洲| 色综合久久天天综合网| 色婷婷色五月天| 婷婷丁香成人| 亚洲精品a成人在线播放| 精品热九九| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 99国产精品白浆在线观看免费| 996热re视频在线观看视频| 91日本在线| 丁香婷五月| 天天xxxxxx天天日| 日本美女上人| 密着浓厚中出乚交尾GvG935| 91九色视频在线观看| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 国产99久久久国产精品免费看| 婷婷性爱视频在线| 91精品熟女| 天堂综合久| 亚洲视频在线观看| 99啪99| 亚洲色激情| 五月天婷婷基地| 久久婷婷网址| 婷婷五月黄色激情在线| 五月婷导航| 26uuu欧美| 色五月婷婷激情基地| 97人人干人人操| 亚洲亚洲亚洲AAAAAA| 可以免费观看的AV| 免费看片操逼| 草AV9999| 天天射综合网站| 久久38视频| 九月婷婷综合网| 99热国产这里只有| 26uuu日韩| 丁香色色网| 五月婷婷|欧美| 激情五月天免费视频| 婷婷啪啪| 九九九九九九九九九九九九九国产精品| 丁香综合伊人| 玖玖爱资源站| 五月天色欧美| 狠狠狠人妻| 国产99热| 9热久久| 综合玖玖性爱免费视频| 丁香六月婷婷五月婷婷| 玩熟女五十AV一二三区| 夜夜躁婷婷AV| 亚州操人在线视频| 亚洲av| 日本一级黄色电影| 九九色图| 3DAV亚洲香蕉久久 一区二区| 天天综合插插| 色婷婷狠狠| 碰97久久| 婷婷丁香五月,狠狠综合| 91ncm视频| 激情 久久 婷婷| 大香网伊人久久综合| 青青草成人网| 丁香五月色情av| 天天舔夜夜操www com| 久久97| 丁香花五月天激情| 亚州操操| 亚洲自拍天堂| 五月天电影网| 538在线精品| 丁香五月天人体| 大香蕉综合在线| AV电影在线播放| 成人婷99最新| 亚洲人妻电影| 婷婷亚洲综合| 久久大香蕉伊人| 五月花婷婷在线精品视频| AA久久| 久久久久99精品成人网站| 五月婷婷深爱六月| 色综合天天| 五月丁香六月成人| 五月婷婷婷婷网| 婷婷色五月91啪啪| 色婷婷五月婷婷五月婷婷五月| 中文成人在线| 五月天色婷婷视频| 任你艹| 2020久久婷婷五月| 五月天久久久| 色综合色综合网| 色色网站| 色女人久久| 91人人爽狠狠狠| 五月婷婷久久久| 狠狠色婷婷| 五月婷婷激情四季| 91色久| 亚州激情在线视频| 成人美女网| 久久人人人人妻| 午夜激情四射影院| 九九亚洲小视频| 91丁香色| 欧美成人A片AAA片在线播放| 激情婷婷五月天丁香| 五月丁香啪啪| 香蕉国产2013| 精品色| 丁香五月日啪| 在线综合亚洲欧美65| 丁香五月激情啪啪| 丁香婷婷五月人体| 亚洲情色一区| 亚洲激情亚洲激情| www.日日夜夜.com| 91男同| 六月丁香啪啪| 色婷婷视频| www.久99| 色玖玖综合| 97成人丁香婷婷| 婷婷色中文字幕| 99re这里只有精品首页| 丁香五月婷婷亚洲天堂| 另类A片| 色五月久久成人婷婷| 久久曰9| 久艹大香蕉| 久久五月激情综合| 深爱五月天| 这里只有精品免费视频在线观看| 免费人人操| 色五月成人| 亚洲综合色棒|