일반 문법 Vs. 랭체인 문법

이다언·2025년 7월 8일
# 일반 문법 Vs. 랭체인 문법
# .env 파일에서 모든 API 변수 불러오기
from dotenv import load_dotenv; load_dotenv(); import os

# 1-1. OpenAI에서 발급받은 API 키로 OpenAI 모델 직접 실행
from openai import OpenAI
client = OpenAI(api_key=os.getenv("openai"), base_url="https://api.openai.com/v1")
response = client.chat.completions.create(
    model="gpt-4.1-mini",
    messages=[
    {"role": "system", "content": "Respond like a casual friend."},
    {"role": "user", "content": "who am I?"}
]); print(f"OpenAI Answer: {response.choices[0].message.content}")

# 1-2. LangChain을 통해서 OpenAI API를 사용 (OpenAI를 LangChain으로 감싸서 사용)
from langchain_openai import OpenAI
os.environ["OPENAI_API_KEY"] = os.getenv("openai")
llm = OpenAI()
llm.invoke("Hello how are you?")

# 2-1. Azure에서 발급받은 Azure OpenAI API키를 사용하여 Azure를 통해서 OpenAI 모델 사용
from openai import AzureOpenAI
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),    
    azure_endpoint="https://2nd-ai.cognitiveservices.azure.com/openai/deployments/gpt-4.1-mini/chat/completions?api-version=2025-01-01-preview",
    api_version="2024-12-01-preview")
    
response = client.chat.completions.create(
    model = "gpt-4.1-mini",
    messages = [
    {"role": "system", "content": "Respond like a casual friend."},
    {"role": "user", "content": "who am I?"}
]); print(f"Azure_openai answer: {response.choices[0].message.content}")

# 2-2. LangChain을 통해서 Azure OpenAI API 사용 (Azure OpenAI를 LangChain으로 감싸서 사용)
from langchain_openai import AzureChatOpenAI
model = AzureChatOpenAI(
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    azure_deployment=os.environ["AZURE_OPENAI_DEPLOYMENT_NAME"],
    openai_api_version=os.environ["AZURE_OPENAI_API_VERSION"]
); print(f"LangChain_Azure_OpenAI answer : {model.invoke('Hello, world!').content}")

# 3-1. HuggingFace 모델을 로컬에 다운로드하여 사용 (API 키 필요 없음)
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
model_id = "skt/kogpt2-base-v2"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)

text_gen = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
    device=-1,
    truncation=True,
    max_length=50,
    do_sample=True,
    temperature=0.7,
)
response=text_gen("산 속에 토끼 한 마리가 살고 있었습니다. 그러던 어느 날 ")
print("생성된 문장:", response)

# 3-2. HuggingFace 모델을 LangChain으로 감싸서 사용
from langchain_huggingface import HuggingFacePipeline
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline

model_id = "skt/kogpt2-base-v2"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
text_gen = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
    device=-1,
    truncation=True,
    max_length=50,
    do_sample=True,
    temperature=0.7,
)
llm = HuggingFacePipeline(pipeline=text_gen)
response=llm.invoke("산 속에 토끼 한 마리가 살고 있었습니다. 그러던 어느 날 ")
print("생성된 문장:", response)
profile
AI 클라우드 웹개발자

0개의 댓글