Open7
GenAIScript を触ってみる
Generative AI Scripting
とりあえずVSCodeの拡張を入れる
Hello world
Setup
.env
をルートに作成する。今回はOpenAIのgpt-4o
をモデルに使うのでOpenAIのSecret keyを定義しておく。
.env
OPEN_AI_KEY=sk...
Scaffold
command palette で GenAiScript: Create new script...
ファイル名を指定すると /genaisrc
が生成される。
hello
にするとhello.genai.mjs
が作られる:
$`Write a short poem in code.`;
`$...\
はテンプレートリテラルからpromptを定義するための記法。
使用するLLMプロバイダーとモデルを指定しておく
hello.genai.mjs
script({
title: "Hello, GenAIScript!",
model: "openai:gpt-4o",
});
$`Write a short poem in code.`;
Command Palette で > GenAIScript: Run GenAIScript ...
を実行すると↓が出力される:
def whisper_winds():
return (
"In lines of code, a tale is spun,\n"
"Where bits and bytes together run.\n"
"A silent dance upon the screen,\n"
"A digital world, serene and keen.\n"
)
print(whisper_winds())
出力されたコードを保存したいので、defFileOutput
で出力先を指定してみるがうまくいかない
hello.genai.mjs
defFileOutput("./out/poem.py", "Generated poem");
promptでもファイルに出力するように指示したら出力できた
hello.genai.mjs
script({
title: "Hello, GenAIScript!",
model: "openai:gpt-4o",
});
// task
$`Write a short poem in code and save it in a file.`;
// output
defFileOutput("out/poem.py", "Generated code");
ファイルを読み込んで処理してもらう
sentiment.genai.mjs
script({
title: "Sentiment analysis",
model: "openai:gpt-4",
files: "src/dummy_product_reviews.csv",
});
const data = await workspace.readCSV("./src/dummy_product_reviews.csv");
def("CSVS", env.files);
$`CSVS contains review comments about the product. Please determine if each comment is a positive or negative review of the product.`;
src/dummy_product_reviews.csv
には適当なデータを配置しておく
dummy_product_review.csv
product,comment
4K TV UltraHD,Battery life could be better.
Wireless Earbuds Z,Perfect for everyday use.
Fitness Tracker Fit1,Battery life could be better.
Digital Camera ZoomX,"Amazing product, highly recommended!"
Smartwatch Series 5,Lags occasionally but otherwise works well.
E-Reader Glow,"Amazing product, highly recommended!"
E-Reader Glow,Perfect for everyday use.
Fitness Tracker Fit1,Not as durable as I had hoped.
E-Reader Glow,Not as durable as I had hoped.
Fitness Tracker Fit1,Great for the price point.
Noise-Canceling Headphones,Excellent features and easy to use.
4K TV UltraHD,Decent quality but a bit overpriced.
Laptop Pro 15,Excellent features and easy to use.
Tablet Lite,Disappointed with the sound quality.
Noise-Canceling Headphones,Excellent features and easy to use.
Tablet Lite,Lags occasionally but otherwise works well.
Laptop Pro 15,Perfect for everyday use.
Smartwatch Series 5,Lags occasionally but otherwise works well.
Tablet Lite,Exceeded my expectations in every way.
Wireless Earbuds Z,Battery life could be better.
Smartwatch Series 5,Lags occasionally but otherwise works well.
Laptop Pro 15,Exceeded my expectations in every way.
Fitness Tracker Fit1,Lags occasionally but otherwise works well.
4K TV UltraHD,Lags occasionally but otherwise works well.
E-Reader Glow,Decent quality but a bit overpriced.
Tablet Lite,Disappointed with the sound quality.
Gaming Console One,Not as durable as I had hoped.
Digital Camera ZoomX,Excellent features and easy to use.
Tablet Lite,Lags occasionally but otherwise works well.
E-Reader Glow,Great for the price point.
4K TV UltraHD,Lags occasionally but otherwise works well.
Smartwatch Series 5,Excellent features and easy to use.
Laptop Pro 15,Battery life could be better.
Digital Camera ZoomX,Exceeded my expectations in every way.
Gaming Console One,Exceeded my expectations in every way.
Fitness Tracker Fit1,Great value for the price.
Bluetooth Speaker Max,"Amazing product, highly recommended!"
Gaming Console One,Great value for the price.
Gaming Console One,Exceeded my expectations in every way.
Digital Camera ZoomX,Perfect for everyday use.
E-Reader Glow,"Fantastic design, very stylish."
Digital Camera ZoomX,Battery life could be better.
Bluetooth Speaker Max,"Amazing product, highly recommended!"
Smartwatch Series 5,Not as durable as I had hoped.
Wireless Earbuds Z,"Fantastic design, very stylish."
Noise-Canceling Headphones,Great for the price point.
E-Reader Glow,Excellent features and easy to use.
Digital Camera ZoomX,Not as durable as I had hoped.
Bluetooth Speaker Max,Lags occasionally but otherwise works well.
Wireless Earbuds Z,Not as durable as I had hoped.
分類してくれた:
The determination of whether a comment is positive or negative is a subjective process and requires a sentiment analysis. However, here is a rough estimation:
| product | comment | sentiment |
|---------|---------|-----------|
| 4K TV UltraHD | Battery life could be better. | Negative |
| Wireless Earbuds Z | Perfect for everyday use. | Positive |
| Fitness Tracker Fit1 | Battery life could be better. | Negative |
| Digital Camera ZoomX | Amazing product, highly recommended! | Positive |
| Smartwatch Series 5 | Lags occasionally but otherwise works well. | Neutral |
| E-Reader Glow | Amazing product, highly recommended! | Positive |
| E-Reader Glow | Perfect for everyday use. | Positive |
| Fitness Tracker Fit1 | Not as durable as I had hoped. | Negative |
| E-Reader Glow | Not as durable as I had hoped. | Negative |
| Fitness Tracker Fit1 | Great for the price point. | Positive |
| Noise-Canceling Headphones | Excellent features and easy to use. | Positive |
| 4K TV UltraHD | Decent quality but a bit overpriced. | Neutral |
| Laptop Pro 15 | Excellent features and easy to use. | Positive |
| Tablet Lite | Disappointed with the sound quality. | Negative |
| Noise-Canceling Headphones | Excellent features and easy to use. | Positive |
| Tablet Lite | Lags occasionally but otherwise works well. | Neutral |
| Laptop Pro 15 | Perfect for everyday use. | Positive |
| Smartwatch Series 5 | Lags occasionally but otherwise works well. | Neutral |
| Tablet Lite | Exceeded my expectations in every way. | Positive |
| Wireless Earbuds Z | Battery life could be better. | Negative |
| Smartwatch Series 5 | Lags occasionally but otherwise works well. | Neutral |
| Laptop Pro 15 | Exceeded my expectations in every way. | Positive |
| Fitness Tracker Fit1 | Lags occasionally but otherwise works well. | Neutral |
| 4K TV UltraHD | Lags occasionally but otherwise works well. | Neutral |
| E-Reader Glow | Decent quality but a bit overpriced. | Neutral |
| Tablet Lite | Disappointed with the sound quality. | Negative |
| Gaming Console One | Not as durable as I had hoped. | Negative |
| Digital Camera ZoomX | Excellent features and easy to use. | Positive |
| Tablet Lite | Lags occasionally but otherwise works well. | Neutral |
| E-Reader Glow | Great for the price point. | Positive |
| 4K TV UltraHD | Lags occasionally but otherwise works well. | Neutral |
| Smartwatch Series 5 | Excellent features and easy to use. | Positive |
| Laptop Pro 15 | Battery life could be better. | Negative |
| Digital Camera ZoomX | Exceeded my expectations in every way. | Positive |
| Gaming Console One | Exceeded my expectations in every way. | Positive |
| Fitness Tracker Fit1 | Great value for the price. | Positive |
| Bluetooth Speaker Max | Amazing product, highly recommended! | Positive |
| Gaming Console One | Great value for the price. | Positive |
| Gaming Console One | Exceeded my expectations in every way. | Positive |
| Digital Camera ZoomX | Perfect for everyday use. | Positive |
| E-Reader Glow | Fantastic design, very stylish. | Positive |
| Digital Camera ZoomX | Battery life could be better. | Negative |
| Bluetooth Speaker Max | Amazing product, highly recommended! | Positive |
| Smartwatch Series 5 | Not as durable as I had hoped. | Negative |
| Wireless Earbuds Z | Fantastic design, very stylish. | Positive |
| Noise-Canceling Headphones | Great for the price point. | Positive |
| E-Reader Glow | Excellent features and easy to use. | Positive |
| Digital Camera ZoomX | Not as durable as I had hoped. | Negative |
| Bluetooth Speaker Max | Lags occasionally but otherwise works well. | Neutral |
| Wireless Earbuds Z | Not as durable as I had hoped. | Negative |