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);