برای ارتباط با ای پی آی OpenAI در پایتون از طریق پروکسی می توانیم از کلاس httpx.HTTPTransport برای مشخص کردن آدرس پروکسی مورد نظر برای ارسال درخواست های HTTP و از httpx.Client برای استافاده از کلاس ترنسپورت تعریف شده و الزام کلاینت OpenAI به استفاده از آن استفاده کنیم.
import httpx
from openai import OpenAI
proxy = "socks5://127.0.0.1:4030"
transport = httpx.HTTPTransport(proxy=proxy)
client = OpenAI(
api_key="test-your-api-key",
http_client=httpx.Client(transport=transport)
)
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
در این مثال از پروکسی socks5 استفاده شده است در صورتی که با خطای زیر مواجه شدید باید پکیچ httpx[socks] را نصب کنید:
ImportError: Using SOCKS proxy, but the 'socksio' package is not installed. Make sure to install httpx using `pip install httpx[socks]`.
برای استفاده از قابلیت Async در پایتون هم می توانید به جای استفاده از OpenAI از AsyncOpenAI، httpx.AsyncHTTPTransport و httpx.AsyncClient استفاده کنید:
import httpx
from openai import AsyncOpenAI
proxy = "socks5://127.0.0.1:4030"
transport = httpx.AsyncHTTPTransport(proxy=proxy)
client = AsyncOpenAI(
api_key="your-api-key",
http_client=httpx.AsyncClient(transport=transport)
)
async def main():
response = await client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
if __name__ == "__main__":
asyncio.run(main())
در صورتی که در زمان استفاده با خطای زیر مواجه شدید، می توانید از httpx-socks به جای پکیج httpx[socks] استفاده کنید:
TypeError: unhashable type: 'bytearray'
به این صورت باید از AsyncProxyTransport به جای httpx.AsyncHTTPTransport استفاده کنید:
transport = AsyncProxyTransport.from_url("socks5://127.0.0.1:4030",rdns=True)
رای
0
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!