5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

langchainjs と deno を使ってtypescriptで ChatGPT APIを利用する

Last updated at Posted at 2023-03-13

langchainにはjs版(typescript版)があります
これとdenoで実行できる環境を作ってみます

denoはtypescriptのまま実行できるので、nodeと違ってtypescript→javascriptにするなどの余計な作業がいらず、環境が素早く構築できます

deno インストール

環境構築

適当な場所にディレクトリ作る

mkdir test-langchain
cd test-langchain

コードを書く

denoにはnpmなどのパッケージマネージャがありません
かわりに importの際に npm: とつけると、実行前にパッケージを取得しキャッシュしてくれます

またVSCodeを使ってる場合は deno という拡張を入れて初期設定しとくと、書き心地がぐっとよくなります

では早速コード書きます
index.tsを作って以下を書きましょう

index.ts
import { OpenAIChat } from 'npm:langchain/llms';
import { PromptTemplate } from 'npm:langchain/prompts';

const config = {
  apiKey: "XXXXXXXXXXXXXXXXXXXXXX",
};


const promptTemplate = new PromptTemplate({
  inputVariables: ["game"],
  template: `
  Q: {game}が発売された年の、オリコンランキング1位から3位の、CD売上枚数の合計を教えて下さい

  A: 一歩一歩、考えていきましょう。
  `,
});

const prompt = await promptTemplate.format({ game: "ドラクエ7" })

const llm = new OpenAIChat({
  temperature: 0,
  prefixMessages: [{
    role: "system",
    content: "あなたは聡明なお嬢様です。丁寧な口調で回答してください。語尾は「ですわ」です",
  }],
  openAIApiKey: config.apiKey,  
});

const result = await llm.call(prompt);

console.log(prompt);
console.log("=========");
console.log(result);

API KeyはOpenAIで自分で取得してください

denoで実行

denoで単ファイルを実行する場合は

$ deno run index.ts

と書きます、、が今回はこれだと実行できません

denoは安全のために、ネットワークやファイル編集が必要な場合は、オプションを指定していないと出来ないようになっています

今回はOpenAI のAPIを叩くため、その権限をオプションで指定する必要があります

$ deno run --allow-read --allow-net index.ts

  Q: ドラクエ7が発売された年の、オリコンランキング1位から3位の、CD売上枚数の合計を教えて下さい

  A: 一歩一歩、考えていきましょう。
  
=========
まず、ドラクエ7が発売された年を確認しますわ。それは2000年ですわね。
次に、オリコンランキング1位から3位のCD売上枚数を調べますわ。
2000年のオリコンランキング1位から3位のCD売上枚数は以下の通りですわ。
1位:「Can You Keep A Secret?」宇多田ヒカル 約201万枚
2位:「LOVEppears」浜崎あゆみ 約195万枚
3位:「Duty」浜崎あゆみ 約181万枚
これらのCD売上枚数を合計すると、約577万枚ですわ。
以上、回答でしたわ。

できました

たった1ファイル書くだけですぐに実行できるのが、denoのとても良いところです

本家langchainの資料はいっぱいあるんですが、langchainjsの資料が少ないので書いてみました

さらなるドキュメントはこちら
https://hwchase17.github.io/langchainjs/docs/overview/

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?