ai

.env 과 인스턴스(model) 만들기 - langchain.js

폴리프레임 2024. 6. 13. 10:16
반응형

langchain에서는 api 키를 .env 파일에만, OPENAI_API_KEY 로 등록하면, 자동으로 인식 시켜줍니다.

// .env
OPENAI_API_KEY="sk-4xxxxxxxxxxxxxxxxxxxx43"

 

이제는 아무 파일에서나 불러서 사용 할 수 있습니다. 여기 ChatOpenAI 클래스는 OpenAI의 대화형 언어 모델 (예: ChatGPT)과 상호작용하기 위한 기능을 제공합니다. 대화형 애플리케이션에서 사용하기 적합하며, 대화 상태를 관리하고 연속적인 대화를 처리하는 데 유용합니다. 반면에 "import { OpenAI } from "langchain/llms/openai" 의 OpenAI클라스는 OpenAI의 언어 모델을 사용하기 위한 기본 기능을 제공합니다. 주로 언어 모델을 초기화하고 텍스트 생성, 언어 이해 등의 작업을 수행할 수 있습니다.

import { ChatOpenAI } from "@langchain/openai";
import { ChatPromptTemplate } from '@langchain/core/prompts';

import * as dotenv from 'dotenv';
dotenv.config(); // model에 process.env.OPENAI_API_KEY 안해도 됨

// model 만들기 - langchain 을 통해서 만듬
const model = new ChatOpenAI({
    modelName: "gpt-3.5-turbo",
    temperature: 0.7,
});

or

import { ChatOpenAI } from "@langchain/openai";
import { ChatPromptTemplate } from '@langchain/core/prompts';

import {config} from 'dotenv';
config();

// model 만들기
const model = new ChatOpenAI({
    modelName: "gpt-3.5-turbo",
    temperature: 0.7,
});

 

직접 입력하는 경우

import { Configuration, OpenAIApi } from "openai";
import { config } from "dotenv";
config();

const configuration = new Configuration({
  apiKey: process.env.OPENAI_API_KEY,
});
// openai 을 통해서 만드는 경우
const openai = new OpenAIApi(configuration);

async function chat(input) {
  const messages = [{ role: "user", content: input }];

  const response = await openai.createChatCompletion({
    model: "gpt-3.5-turbo",
    messages: messages,
    temperature: 0,
  });

  return response.data.choices[0].message.content;
}
import { OpenAI } from "langchain/llms/openai";
import { PromptTemplate } from "langchain/prompts";
import { LLMChain } from "langchain/chains";
import { config } from "dotenv";
config();

const model = new OpenAI({ temperature: 0 });
const template =
  "재미있게 대답해줘요\n Question: {question}";
const prompt = new PromptTemplate({ template, inputVariables: ["question"] });

const chain = new LLMChain({ llm: model, prompt });

const result = await chain.call({ question: "한국은 어디에 있어요?" });
console.log(result);