문제 상황

회사 내부 LLM 서버를 hosts 파일로 접근할 때 연결 실패

# /etc/hosts
192.168.1.100 llm-api.example-corp.com

# 실패하는 코드
client = OpenAI(
    base_url="https://llm-api.example-corp.com/v1",
    api_key="dummy-key",
    http_client=httpx.Client()  # ❌ 기본 설정으로는 실패!
)

원인

환경 변수의 프록시 설정이 hosts 파일보다 우선 적용되기 때문

요청 → 환경변수 HTTPS_PROXY 발견 
    → 프록시로 접근 시도 
    → hosts 파일 무시됨 
    → ❌ 연결 실패

해결 방법

trust_env=False 추가로 프록시 우회

import httpx
from openai import OpenAI

# 해결 코드
client = OpenAI(
    base_url="https://llm-api.example-corp.com/v1",
    api_key="dummy-key",
    http_client=httpx.Client(
        trust_env=False,   # 프록시 무시 ⭐ 핵심!
        timeout=60.0
    )
)

# ✅ 정상 작동!

핵심 포인트

설정역할필수도
trust_env=False 프록시 우회 (핵심!) ⭐⭐⭐⭐⭐
timeout=60.0 네트워크 지연 대응 ⭐⭐⭐

작동 원리

trust_env=True (기본):  환경변수 프록시 → ❌ hosts 파일 무시
trust_env=False:        프록시 무시 → ✅ hosts 파일 사용

디버깅 팁

# 프록시 설정 확인
import os
print(os.environ.get('HTTPS_PROXY'))  # 값이 있으면 trust_env=False 필요

# hosts 파일 확인
# macOS/Linux: /etc/hosts
# Windows: C:\Windows\System32\drivers\etc\hosts
# 연결 테스트
ping llm-api.example-corp.com
curl --noproxy "*" https://llm-api.example-corp.com/v1/models

전체 예제

import httpx
from openai import OpenAI

client = OpenAI(
    base_url="https://llm-api.example-corp.com/v1",
    api_key="dummy-key",
    http_client=httpx.Client(
        trust_env=False,
        timeout=60.0
    )
)

response = client.chat.completions.create(
    model="your-model-name",
    messages=[{"role": "user", "content": "Hello!"}],
    max_tokens=100
)

print(response.choices[0].message.content)

추가 옵션 (필요 시)

자체 서명 인증서를 사용하는 경우에만 추가:

import urllib3

# SSL 경고 비활성화 (자체 서명 인증서 사용 시에만)
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

client = OpenAI(
    base_url="https://llm-api.example-corp.com/v1",
    api_key="dummy-key",
    http_client=httpx.Client(
        verify=False,       # 자체 서명 인증서 허용
        trust_env=False,
        timeout=60.0
    )
)

결론

hosts 파일 + 내부 서버 접근 시 반드시 trust_env=False 설정 필요!

프록시가 hosts 파일보다 우선하기 때문에, 프록시를 우회해야 내부 IP로 직접 연결됩니다.


태그: #Python #OpenAI #httpx #Proxy #NetworkTroubleshooting



  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기