「DifyからPerplexity APIを使う」の記事の続編です。
Continueとは
2023年の暮れでしょうか。
VSCodeの拡張機能であるGitHub Copilotを無料で1ヶ月試したのですが、チャットでのコーディングがとても便利で驚いた記憶があります。
GitHub Copilotは個人利用であっても、有料プランしか無いです。
お金が掛かるので、代替えツールが無いか探していました。
そこで見つけた拡張機能がContinueです。
これは無料である上に、色々なモデルを登録して、用途に応じて切り替えながら使えます。
しかも完全なオンプレミスで使えます。
Continueの使い方
詳しくは割愛しますが、以下の流れです。
モデルの選定
メジャーなのはOpenAIのgpt-4oかと思います。
しかし、従量料金制なのでお金がやや心配です。
お金を掛けずにやりたい方は、Ollamaと、ローカルLLMの組み合わせになるかと思います。コーディングが得意なモデルを使うと良いと思います。
そして、外部にデータを漏らしたくないが、生成AIを使ってチャットしながらVSCodeでコーディングしたい、といった要件を満たしてくれます。
ここで紹介するPerplexity APIをContinueで使うメリットは、何といってもインターネットの情報を元にコーディングができる点でしょうか。
なので、たとえばリリースされたばかりの新機能を、いきなりチャットでコーディングしてもらう事が出来たりするのかなと想像します。
Perplexity APIの登録方法
モデルの登録方法は幾つかありますが、今回はconfig.jsonを直接編集する方法で進めます。
Continueの画面の下の方にある歯車ボタンを押します。
config.jsonの"models"へ、以下を追記します。
{
"title": "llama-3.1-sonar-small-128k-online",
"model": "llama-3.1-sonar-small-128k-online",
"systemMessage": "あなたはソフトウェア開発のエキスパートです。あなたは親切で簡潔な回答をします。",
"contextLength": 127072,
"apiBase": "https://api.perplexity.ai/",
"apiKey": "pplx-f************9b",
"completionOptions": {
"temperature": 0
},
systemMessageはシステムプロンプトになります。ここでは出力結果が良くなるような呪文を記述しておきます。
プログラムコードはかなり長いケースがあります。
そこでcontextLengthは、最大の127072としています。
apiKeyは適宜変更してください。
コーディングの場合はtemperatureをなるたけ低くすることで、硬いコードを生成してくれる傾向があります。
completionOptionsで、temperatureを0としています。
他にも色々なオプションがあり、下記に記されています。
自分好みにカスタマイズすると面白いかと思います。
https://docs.continue.dev/reference/config
動作確認
現在、2024年8月31日です。
先日2024年8月27日にStreamlitのバージョン1.38.0がリリースされました。
バージョン1.38.0で新たにPolarsデータフレームがサポートされました。
Polarsデータフレームを使ったStreamlitのサンプルコードをPerplexity APIのllama-3.1-sonar-small-128k-onlineを使って生成してみます。
streamlitのバージョン1.38.0でサポートされた
データフレームPolarsを使ったサンプルコードを生成する
無事生成されたましたので、実行してみます。
一発で動きました!
まあデータフレームなのでPandasさえ知っておけば、特にチャットでなくても良いのですが。
最後に
ContinueからPerplexity APIを使う最大の目的である、最近出たばかりの新機能をチャットでコーディングしてみました。
もっとどえらい新機能が出てきた時に、Perplexity APIの実力を試してみるのも良いかもしれません。