Apidog

올인원 협업 API 개발 플랫폼

API 설계

API 문서

API 디버깅

API 모킹

API 자동화 테스트

GPT4Free 파이썬 라이브러리 사용 방법

Young-jae

Young-jae

Updated on April 5, 2025

소개

GPT4Free는 다양한 공급자를 통해 강력한 언어 모델 모음에 대한 액세스를 제공하는 오픈 소스 Python 라이브러리입니다. 이 라이브러리는 다중 공급자 AI 요청을 통해 타임아웃, 부하 분산 및 흐름 제어와 같은 기능을 구현하는 API 패키지의 개념 증명을 제공하는 역할을 합니다. 이 라이브러리를 사용하면 개발자들이 공식 API 키 없이도 다양한 언어 모델을 사용하여 텍스트를 생성할 수 있습니다. 여기에는 GPT-3.5 및 GPT-4 변형이 포함됩니다.

이 자습서는 gpt4free 라이브러리의 설치, 설정 및 사용법을 안내하며, 다양한 AI 기반 텍스트 생성 작업을 위해 이 라이브러리의 기능을 활용하는 방법을 보여줍니다.

법적 고려 사항

💡
경고: 이 자습서를 진행하기 전에 gpt4free 라이브러리 사용에 대한 법적 의미를 이해하는 것이 중요합니다.

이 저장소 또는 이와 관련된 코드를 사용함으로써 개발자가 제공한 법적 공지에 동의하게 됩니다. 원저자는 이 저장소의 사용에 대해 책임을 지지 않으며 이를 지지하지도 않습니다. 저자는 또한 다른 사용자가 만든 복사본, 포크, 재업로드 등에 대해 책임을 지지 않습니다. GPT4Free와 관련된 모든 것에 대해서도 마찬가지입니다.

GPT4Free는 다중 공급자 요청을 통해 API 패키지 개발을 시연하는 개념 증명으로 주로 사용됩니다. 이 라이브러리를 사용하여 공식 API를 우회하는 것은 다양한 AI 공급자의 서비스 약관을 위반할 수 있습니다. 이 라이브러리를 기반으로 한 솔루션을 프로덕션 환경에 배포하기 전에 적절한 권한을 확보하고 사용하려는 각 공급자의 서비스 약관을 준수하십시오.

구현 세부사항에 들어가기 전에, Apidog을 gpt4free로 API 테스트를 위한 훌륭한 대안으로 사용할 수 있다는 점을 언급할 가치가 있습니다. Apidog은 API 디자인, 디버깅, 자동화된 테스트 및 문서화와 같은 기능을 제공하는 포괄적인 API 개발 플랫폼입니다.

gpt4free 간섭 API로 작업할 때 Apidog이 도움이 될 수 있는 방법은 다음과 같습니다:

  1. API 엔드포인트에 요청 보내기
  2. 다양한 매개변수 구성 테스트
  3. 응답 데이터 시각화
  4. 미래 사용을 위한 API 요청 컬렉션 만들고 저장하기
버튼

GPT4Free 설치 방법

전제 조건

  • Python 3.10 이상 (권장)
  • Google Chrome (웹 드라이버가 있는 공급자에 필요)

GPT4Free 설치 방법

방법 1: PyPI 사용하기

모든 기능을 포함한 완전한 설치를 위해:

pip install -U g4f[all]

부분 설치를 위해:

# OpenAI Chat 공급자용
pip install -U g4f[openai]

# 간섭 API용
pip install -U g4f[api]

# 웹 인터페이스용
pip install -U g4f[gui]

# 이미지 생성용
pip install -U g4f[image]

# 웹 드라이버가 있는 공급자용
pip install -U g4f[webdriver]

# 프록시 지원을 위해
pip install -U aiohttp_socks

방법 2: GitHub 저장소에서

# 저장소 클론하기
git clone https://github.com/xtekky/gpt4free.git

# 프로젝트 디렉토리로 이동
cd gpt4free

# 가상 환경 만들기 (권장)
python3 -m venv venv

# 가상 환경 활성화
# Windows의 경우:
.\venv\Scripts\activate
# macOS 및 Linux의 경우:
source venv/bin/activate

# 최소 요구 사항 설치
pip install -r requirements-min.txt

# 또는 모든 요구 사항 설치
pip install -r requirements.txt

방법 3: Docker 사용하기

# Docker 이미지 가져오기
docker pull hlohaus789/g4f

# 컨테이너 실행하기
docker run -p 8080:8080 -p 1337:1337 -p 7900:7900 --shm-size="2g" hlohaus789/g4f:latest

슬림 버전의 경우 (x64 및 arm64 모두 호환):

# 필요한 디렉토리 만들기
mkdir -p ${PWD}/har_and_cookies ${PWD}/generated_images
chown -R 1000:1000 ${PWD}/har_and_cookies ${PWD}/generated_images

# 슬림 Docker 이미지 실행하기
docker run \
  -p 1337:1337 \
  -v ${PWD}/har_and_cookies:/app/har_and_cookies \
  -v ${PWD}/generated_images:/app/generated_images \
  hlohaus789/g4f:latest-slim \
  /bin/sh -c 'rm -rf /app/g4f && pip install -U g4f[slim] && python -m g4f --debug'

Python 기본 사항으로 GPT4Free 사용하기

ChatCompletion을 사용한 텍스트 생성

간단한 예시

import g4f

# 디버그 로깅 활성화 (선택 사항)
g4f.debug.logging = True

# 자동 버전 확인 비활성화 (선택 사항)
g4f.debug.version_check = False

# 일반 (비스트리밍) 응답
response = g4f.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "안녕하세요, 오늘 기분이 어떠신가요?"}]
)
print(response)

스트리밍 응답

import g4f

# 응답 스트리밍
response = g4f.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "로봇에 대한 짧은 이야기를 작성해 주세요."}],
    stream=True
)

for message in response:
    print(message, end='', flush=True)

특정 공급자 사용하기

import g4f

# 사용 가능한 작동 공급자 목록
providers = [provider.__name__ for provider in g4f.Provider.__providers__ if provider.working]
print("사용 가능한 공급자:", providers)

# 특정 공급자 사용하기
response = g4f.ChatCompletion.create(
    model="gpt-3.5-turbo",
    provider=g4f.Provider.Aichat,
    messages=[{"role": "user", "content": "양자 컴퓨팅을 간단한 용어로 설명해 주세요."}]
)
print(response)

클라이언트 API 사용하기

클라이언트 API를 사용하는 보다 현대적인 접근 방식:

from g4f.client import Client

# 클라이언트 인스턴스 생성
client = Client()

# 채팅 완성을 사용하여 텍스트 생성
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "안녕하세요"}],
    web_search=False
)
print(response.choices[0].message.content)

이미지 생성

from g4f.client import Client

# 클라이언트 인스턴스 생성
client = Client()

# 이미지 생성
response = client.images.generate(
    model="flux",
    prompt="하얀 색 샴 고양이",
    response_format="url"
)
print(f"생성된 이미지 URL: {response.data[0].url}")

공급자 인증

일부 공급자는 인증을 위해 쿠키 또는 액세스 토큰을 요구합니다:

from g4f import set_cookies

# Bing에 대한 쿠키 설정
set_cookies(".bing", {"_U": "쿠키 값"})

# OpenAI Chat에 대한 액세스 토큰 설정
set_cookies("chat.openai.com", {"access_token": "토큰 값"})

브라우저 자동화 사용하기

브라우저 상호작용이 필요한 공급자의 경우:

import g4f
from undetected_chromedriver import Chrome, ChromeOptions

# Chrome 옵션 구성
options = ChromeOptions()
options.add_argument("--incognito")

# Chrome WebDriver 초기화
webdriver = Chrome(options=options, headless=True)

try:
    # 여러 요청에 대해 브라우저 사용
    for idx in range(5):
        response = g4f.ChatCompletion.create(
            model=g4f.models.default,
            provider=g4f.Provider.MyShell,
            messages=[{"role": "user", "content": f"모바일 앱에 대한 아이디어 #{idx+1}을 주세요."}],
            webdriver=webdriver
        )
        print(f"아이디어 {idx+1}:", response)
finally:
    # 완료되면 항상 webdriver 닫기
    webdriver.quit()

비동기 지원

여러 요청을 처리하기 위한 성능 향상:

import g4f
import asyncio

# 사용할 공급자 정의
providers = [
    g4f.Provider.Aichat,
    g4f.Provider.ChatBase,
    g4f.Provider.Bing,
    g4f.Provider.GptGo
]

async def run_provider(provider):
    try:
        response = await g4f.ChatCompletion.create_async(
            model=g4f.models.default,
            messages=[{"role": "user", "content": "당신의 이름은 무엇인가요?"}],
            provider=provider,
        )
        print(f"{provider.__name__}:", response)
    except Exception as e:
        print(f"{provider.__name__}:", e)

async def run_all():
    calls = [run_provider(provider) for provider in providers]
    await asyncio.gather(*calls)

# 모든 공급자를 비동기로 실행
asyncio.run(run_all())

프록시 및 타임아웃 지원

네트워크 제약을 처리하기 위해:

import g4f

# 특정 프록시 및 연장된 타임아웃 사용
response = g4f.ChatCompletion.create(
    model=g4f.models.default,
    messages=[{"role": "user", "content": "내 Python 코드를 어떻게 개선할 수 있나요?"}],
    proxy="http://host:port",  # 또는 socks5://user:pass@host:port
    timeout=120  # 초 단위
)
print("결과:", response)

환경 변수를 통해 글로벌 프록시를 설정할 수도 있습니다:

export G4F_PROXY="http://host:port"

GPT4Free로 웹 인터페이스 실행하기

GPT4Free는 보다 쉬운 상호작용을 위한 웹 인터페이스를 포함하고 있습니다:

from g4f.gui import run_gui
run_gui()

또는 명령줄을 사용할 수 있습니다:

# Flask 서버 시작
python -m g4f.cli gui --port 8080 --debug

# 또는 FastAPI 서버 시작
python -m g4f --port 8080 --debug

웹 인터페이스는 http://localhost:8080/chat/에서 사용할 수 있습니다.

GPT4Free와 간섭 API 사용하기

GPT4Free는 다른 도구와 통합하기 위해 OpenAI 호환 API를 제공합니다:

# API 서버 실행
from g4f.api import run_api
run_api()

또는 명령줄을 통해:

g4f-api
# 또는
python -m g4f.api.run

그런 다음 OpenAI Python 클라이언트를 사용하여 연결할 수 있습니다:

from openai import OpenAI

client = OpenAI(
    # 선택 사항: 임베딩을 위한 Hugging Face 토큰 설정
    api_key="YOUR_HUGGING_FACE_TOKEN",
    base_url="http://localhost:1337/v1"
)

# 공식 OpenAI 클라이언트처럼 사용하기
chat_completion = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "나무에 대한 시를 써줘"}],
    stream=True,
)

for token in chat_completion:
    content = token.choices[0].delta.content
    if content is not None:
        print(content, end="", flush=True)

GPT4Free 지원 모델 및 공급자

GPT4Free는 다양한 기능을 갖춘 여러 공급자를 지원합니다. 일부 공급자는 GPT-4를 지원하고, 다른 공급자는 GPT-3.5를 지원하며, 일부는 대체 모델을 지원합니다.

GPT-4 공급자

  • Bing (g4f.Provider.Bing)
  • GeekGpt (g4f.Provider.GeekGpt)
  • GptChatly (g4f.Provider.GptChatly)
  • Liaobots (g4f.Provider.Liaobots)
  • Raycast (g4f.Provider.Raycast)

GPT-3.5 공급자

  • AItianhu (g4f.Provider.AItianhu)
  • AItianhuSpace (g4f.Provider.AItianhuSpace)
  • AiAsk (g4f.Provider.AiAsk)
  • Aichat (g4f.Provider.Aichat)
  • ChatBase (g4f.Provider.ChatBase)
  • ChatForAi (g4f.Provider.ChatForAi)
  • ChatgptAi (g4f.Provider.ChatgptAi)
  • 그리고 많은 다른...

기타 모델

  • Bard (구글의 Palm)
  • DeepInfra
  • HuggingChat
  • Llama2
  • OpenAssistant

결론

gpt4free Python 라이브러리는 많은 경우 공식 API 키 없이 다양한 언어 모델에 접근할 수 있는 인상적인 기능을 제공합니다. 여러 공급자를 위한 통합 인터페이스를 제공함으로써, 개발자들이 다양한 언어 모델을 실험하고 성능을 비교할 수 있도록 합니다.

이 라이브러리는 주로 개념 증명으로 법적 함의가 있을 수 있으므로, AI 기능에 대해 배우고 작은 프로젝트를 테스트하며 다양한 언어 모델이 작동하는 방식을 이해하는 귀중한 도구입니다.

이 라이브러리를 책임감 있게 사용하고, 공급자의 서비스 약관을 준수하며, AI 사용에 대한 윤리적 고려 사항을 염두에 두는 것을 잊지 마십시오. 프로덕션 애플리케이션의 경우, 적절한 인증과 라이선스를 갖춘 공식 API를 사용하는 것이 강력히 권장됩니다.

이 라이브러리는 활발히 개발 중이므로, 최신 기능, 공급자 및 최선의 방법에 대한 정보를 얻으려면 GitHub 저장소 및 문서를 확인하십시오. AI 분야는 빠르게 진화하고 있으므로 gpt4free와 같은 도구는 최신 기술에 대한 접근을 민주화하여 더 많은 개발자가 이 강력한 모델을 실험하고 배우도록 돕습니다.