Skeet Framework Plugin - AI
Skeet AI Plugin for AI.
This plugin is a wrapper for Google Cloud Vertex AI and Open AI.
Fast and easy to deploy with Skeet Framework.
🧪 Dependency 🧪
Installation
$ yarn add @skeet-framework/ai
with Skeet Framework CLI
$ skeet yarn add -p @skeet-framework/ai
Initial Setup - Vertex AI (Google Cloud)
Enable API and Permissions on GCP.
if you havent installed Skeet CLI, install it.
$ gcloud auth login
$ npm i -g @skeet-framework/cli
and run skeet iam ai
command.
$ skeet iam ai
? What's your GCP Project ID your-project-id
? Select Regions to deploy asia-east1
✔ Successfully created ./skeet-cloud.config.json 🎉
🚸 === Copy & Paste below command to your terminal === 🚸
export GOOGLE_APPLICATION_CREDENTIALS=/your/dev/path/keyfile.json
export GCLOUD_PROJECT=your-project-id
export FIREBASE_CONFIG='{ "locationId": "us-central1" }'
🚸 ========= END ========= 🚸
And set environment variables following the console's output.
Note: If you deploy to Firebase Functions in a production environment, both the GCLOUD_PROJECT
and FIREBASE_CONFIG
environment variables will be automatically set.
Vertex AI
Example app.ts
import { vertexAi, VertexPromptParams } from '@skeet-framework/ai'
const run = async () => {
const prompt: VertexPromptParams = {
context:
'You are a developer who is knowledgeable about the Skeet framework, a framework for building web applications.',
examples: [
{
input: {
content:
'What is the Skeet framework and what benefits does it offer for app development?',
},
output: {
content:
'The Skeet framework is an open-source full-stack app development solution that aims to lower the development and operation cost of applications. It allows developers to focus more on the application logic and worry less about infrastructure. The framework can be assembled with a combination of SQL and NoSQL.',
},
},
],
messages: [
{
author: 'user',
content: 'Tell me about the Skeet framework.',
},
],
}
const response = await vertexAi(prompt)
console.log(response)
}
run()
Run
$ npx ts-node app.ts
Vertex AI - Japanese (日本語)
以下のように isJapanese
オプションを true
にすることで、
日本語をサポートしています。
const options = {
isJapanese: true,
}
const response = await vertexAi(prompt, options)
デフォルトのモデルは chat-bison@001
を使用していますが、
このモデルは日本語をサポートしていないため、
内部では Google 翻訳API を使用して、日本語を英語に変換してから、
英語のモデルを使用しています。
Example app.ts
import { VertexAiOptions, VertexPromptParams } from '../types/vertexaiTypes'
import { vertexAi } from './vertexAi'
const run = async () => {
const prompt: VertexPromptParams = {
context:
'あなたは、Web アプリケーションを構築するためのフレームワークである Skeet フレームワークに精通している開発者です。',
examples: [
{
input: {
content:
'Skeet フレームワークとは何ですか?また、それがアプリ開発にどのようなメリットをもたらしますか?',
},
output: {
content:
'Skeet フレームワークは、アプリケーションの開発および運用コストを削減することを目的とした、オープンソースのフルスタック アプリケーション開発ソリューションです。これにより、開発者はインフラストラクチャについて心配する必要がなくなり、アプリケーション ロジックに集中できるようになります。このフレームワークは、SQL と NoSQL を組み合わせて構築できます。',
},
},
],
messages: [
{
author: 'user',
content: 'Skeet フレームワークについて教えてください。',
},
],
}
const options: VertexAiOptions = {
isJapanese: true,
}
const response = await vertexAi(prompt, options)
console.log(response)
}
run()
Run (実行)
$ npx ts-node app.ts
Initial Setup - Open AI (ChatGPT)
Create OpenAI API Key
📕 OpenAI API Document
Usage
OpenAI
set environment variables
$ export CHAT_GPT_ORG=org-id
$ export CHAT_GPT_KEY=your-api-key
Example app.ts
import { openAi, OpenAIPromptParams } from '@skeet-framework/ai'
const run = async () => {
const prompt: OpenAIPromptParams = {
messages: [
{
role: 'system',
content:
'You are a developer who is knowledgeable about the Skeet framework, a framework for building web applications.',
},
{
role: 'user',
content:
'What is the Skeet framework and what benefits does it offer for app development?',
},
{
role: 'assistant',
content:
'The Skeet framework is an open-source full-stack app development solution that aims to lower the development and operation cost of applications. It allows developers to focus more on the application logic and worry less about infrastructure. The framework can be assembled with a combination of SQL and NoSQL.',
},
{
role: 'user',
content: 'Tell me about the Skeet framework.',
},
],
}
const result = await openAi(prompt)
console.log(result)
}
run()
Run
$ npx ts-node app.ts
Skeet AI Docs
Skeet Framework Document
Skeet TypeScript Serverless Framework
GraphQL, CloudSQL, Cloud Functions, TypeScript, Jest Test, Google Cloud Load Balancer, Cloud Armor
What's Skeet?
TypeScript Serverless Framework 'Skeet'.
The Skeet project was launched with the goal of reducing software development, operation, and maintenance costs.
Build Serverless Apps faster.
Powered by TAI, Cloud Functions, Typesaurus, Jest, Prettier, and Google Cloud.
Dependency
$ npm i -g @skeet-framework/cli
$ skeet create web-app
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/elsoul/skeet This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
License
The package is available as open source under the terms of the Apache-2.0 License.
Code of Conduct
Everyone interacting in the SKEET project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.