PaLM API: Bắt đầu trò chuyện nhanh bằng Node.js

Xem trên ai.google.dev Dùng thử sổ tay Colab Xem sổ tay trên GitHub

Tổng quan

Phần bắt đầu nhanh này minh hoạ cách sử dụng PaLM API, API này cho phép bạn truy cập vào Các mô hình ngôn ngữ lớn mới nhất của Google, với SDK Node.js PaLM đặc biệt cho các trường hợp sử dụng tập trung vào hộp thoại, chẳng hạn như bot trò chuyện.

Lấy khoá API

Để bắt đầu, bạn cần lấy khoá API. Đặt biến này làm biến môi trường:

import os
os.environ["API_KEY"] = "<YOUR API KEY>"

Cài đặt ứng dụng API

Trong thư mục mới, hãy khởi chạy dự án Node.js bằng npm và cài đặt Thư viện google-auth:

npm init -y

npm install google-auth-library
Wrote to /content/package.json:

{
  "name": "content",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@google-ai/generativelanguage": "^1.0.1",
    "google-auth-library": "^9.0.0"
  },
  "devDependencies": {},
  "description": ""
}


+ google-auth-library@9.0.0
updated 1 package and audited 74 packages in 0.905s

3 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
npm WARN content@1.0.0 No description
npm WARN content@1.0.0 No repository field.

Tiếp theo, hãy cài đặt thư viện ứng dụng:

npm install @google-ai/generativelanguage

+ @google-ai/generativelanguage@1.0.1
updated 1 package and audited 74 packages in 2.274s

3 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
npm WARN content@1.0.0 No description
npm WARN content@1.0.0 No repository field.

Lấy khoá API

Làm theo hướng dẫn về quá trình thiết lập để tạo khoá API cho ứng dụng của bạn. Bạn sẽ cần khoá API này trong bước tiếp theo.

Tạo tin nhắn

Tạo một tệp mới index.js và thêm mã sau, cung cấp cho Khoá API PaLM thông qua biến môi trường API_KEY:

%%writefile index.js

const { DiscussServiceClient } = require("@google-ai/generativelanguage");
const { GoogleAuth } = require("google-auth-library");

const MODEL_NAME = "models/chat-bison-001";
const API_KEY = process.env.API_KEY;

const client = new DiscussServiceClient({
  authClient: new GoogleAuth().fromAPIKey(API_KEY),
});

async function main() {
  const result = await client.generateMessage({
    model: MODEL_NAME, // Required. The model to use to generate the result.
    temperature: 0.5, // Optional. Value `0.0` always uses the highest-probability result.
    candidateCount: 1, // Optional. The number of candidate results to generate.
    prompt: {
      // optional, preamble context to prime responses
      context: "Respond to all questions with a rhyming poem.",
      // Optional. Examples for further fine-tuning of responses.
      examples: [
        {
          input: { content: "What is the capital of California?" },
          output: {
            content:
              `If the capital of California is what you seek,
Sacramento is where you ought to peek.`,
          },
        },
      ],
      // Required. Alternating prompt/response messages.
      messages: [{ content: "How tall is the Eiffel Tower?" }],
    },
  });

  console.log(result[0].candidates[0].content);
}

main();
Overwriting index.js

Sau đó, chạy tập lệnh:

node index.js
The Eiffel Tower is 324 meters tall,
It's a sight to behold, tall and not small.
It's made of iron and weighs 10,100 tons,
It's a wonder of the world, it's a must-see for all.

Tiếp tục cuộc trò chuyện

Để tiếp tục cuộc trò chuyện sau thông báo nhắc ban đầu, bạn cần thêm thông báo đề xuất được trả về cũng như lời nhắc tiếp theo của bạn:

%%writefile index.js
const { DiscussServiceClient } = require("@google-ai/generativelanguage");
const { GoogleAuth } = require("google-auth-library");

const MODEL_NAME = "models/chat-bison-001";
const API_KEY = process.env.API_KEY;

const client = new DiscussServiceClient({
  authClient: new GoogleAuth().fromAPIKey(API_KEY),
});

async function main() {
  let first = "Tell me a one short animal fact."
  let messages = [{ content: first }];

  const result = await client.generateMessage({
    model: MODEL_NAME,
    prompt: { messages },
  });

  console.log("User:\n\n", first, "\n\n")
  console.log("Palm:\n\n", result[0].candidates[0].content, "\n\n");

  let second = "Oh, where do those live?"

  messages.push({ content: result[0].candidates[0].content });
  messages.push({ content: second });

  const secondResult = await client.generateMessage({
    model: MODEL_NAME,
    prompt: { messages },
  });

  console.log("User:\n\n", second, "\n\n")
  console.log("Palm:\n\n", secondResult[0].candidates[0].content, "\n\n");
}

main();
Overwriting index.js
node index.js
User:

 Tell me a one short animal fact. 


Palm:

 The world's smallest mammal is the bumblebee bat, which weighs less than a penny. 


User:

 Oh, where do those live? 


Palm:

 The bumblebee bat is found in the rainforests of Thailand, Myanmar, and Laos. It is a small, nocturnal bat that feeds on insects. The bumblebee bat is the smallest mammal in the world, weighing only about 2 grams. It is about the size of a bumblebee, hence its name. The bumblebee bat is a very important part of the rainforest ecosystem. It helps to control insect populations and pollinate plants.