Skip to main content
OpenAI 라이브러리 버전이 1.0.0 이상인지 확인해 주세요. 이전 버전을 사용하는 경우 OpenAI Adapter(Old) 문서를 참고하세요. 많은 사용자가 OpenAI로 시작하지만 다른 모델을 탐색하고 싶어 합니다. LangChain은 다양한 모델 제공자와의 통합을 제공하여 이를 쉽게 만듭니다. LangChain은 자체 메시지 및 모델 API를 제공하지만, LangChain 모델을 OpenAI API에 맞추는 어댑터를 제공하여 다른 모델을 최대한 쉽게 탐색할 수 있도록 합니다. 현재 이 어댑터는 출력만 처리하며 다른 정보(토큰 수, 중지 이유 등)는 반환하지 않습니다.
import openai
from langchain_community.adapters import openai as lc_openai

chat.completions.create

messages = [{"role": "user", "content": "hi"}]
원본 OpenAI 호출
result = openai.chat.completions.create(
    messages=messages, model="gpt-3.5-turbo", temperature=0
)
result.choices[0].message.model_dump()
{'content': 'Hello! How can I assist you today?',
 'role': 'assistant',
 'function_call': None,
 'tool_calls': None}
LangChain OpenAI 래퍼 호출
lc_result = lc_openai.chat.completions.create(
    messages=messages, model="gpt-3.5-turbo", temperature=0
)

lc_result.choices[0].message  # Attribute access
{'role': 'assistant', 'content': 'Hello! How can I help you today?'}
lc_result["choices"][0]["message"]  # Also compatible with index access
{'role': 'assistant', 'content': 'Hello! How can I help you today?'}
모델 제공자 교체하기
lc_result = lc_openai.chat.completions.create(
    messages=messages, model="claude-2", temperature=0, provider="ChatAnthropic"
)
lc_result.choices[0].message
{'role': 'assistant', 'content': 'Hello! How can I assist you today?'}

chat.completions.stream

원본 OpenAI 호출
for c in openai.chat.completions.create(
    messages=messages, model="gpt-3.5-turbo", temperature=0, stream=True
):
    print(c.choices[0].delta.model_dump())
{'content': '', 'function_call': None, 'role': 'assistant', 'tool_calls': None}
{'content': 'Hello', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': '!', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': ' How', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': ' can', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': ' I', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': ' assist', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': ' you', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': ' today', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': '?', 'function_call': None, 'role': None, 'tool_calls': None}
{'content': None, 'function_call': None, 'role': None, 'tool_calls': None}
LangChain OpenAI 래퍼 호출
for c in lc_openai.chat.completions.create(
    messages=messages, model="gpt-3.5-turbo", temperature=0, stream=True
):
    print(c.choices[0].delta)
{'role': 'assistant', 'content': ''}
{'content': 'Hello'}
{'content': '!'}
{'content': ' How'}
{'content': ' can'}
{'content': ' I'}
{'content': ' assist'}
{'content': ' you'}
{'content': ' today'}
{'content': '?'}
{}
모델 제공자 교체하기
for c in lc_openai.chat.completions.create(
    messages=messages,
    model="claude-2",
    temperature=0,
    stream=True,
    provider="ChatAnthropic",
):
    print(c["choices"][0]["delta"])
{'role': 'assistant', 'content': ''}
{'content': 'Hello'}
{'content': '!'}
{'content': ' How'}
{'content': ' can'}
{'content': ' I'}
{'content': ' assist'}
{'content': ' you'}
{'content': ' today'}
{'content': '?'}
{}

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I