OpenAI compatibility

Bạn có thể truy cập vào các mô hình Gemini bằng cách sử dụng thư viện OpenAI (Python và TypeScript / Javascript) cùng với API REST, bằng cách cập nhật 3 dòng mã và sử dụng khoá API Gemini. Đọc thêm về tính năng này trong hướng dẫn về khả năng tương thích.

Phương thức: chatCompletions

Tạo một tập hợp các câu trả lời từ mô hình dựa trên dữ liệu đầu vào là nhật ký trò chuyện.

Điểm cuối

bài đăng https://generativelanguage.googleapis.com/v1beta:chatCompletions

URL sử dụng cú pháp Chuyển mã gRPC.

Nội dung yêu cầu

Nội dung yêu cầu chứa dữ liệu có cấu trúc sau:

Trường
model string

Bắt buộc. Tên của Model dùng để tạo thao tác hoàn tất. Tên mô hình sẽ có tiền tố là "models/" nếu không có dấu gạch chéo nào xuất hiện trong tên đó.

messages[] object (Struct format)

Bắt buộc. Nhật ký trò chuyện dùng để tạo nội dung hoàn thành. Hỗ trợ truy vấn một và nhiều lượt. Lưu ý: Đây là một trường đa hình, được chuyển đổi tuần tự thành InternalChatMessage.

stream boolean

Không bắt buộc. Liệu có truyền trực tuyến phản hồi hay trả về một phản hồi duy nhất.

Nếu đúng, trường "object" trong phản hồi sẽ là "chat.completion.chunk". Nếu không, đó sẽ là "chat.completion".

streamOptions object (StreamOptions)

Không bắt buộc. Các tuỳ chọn cho yêu cầu truyền trực tuyến.

tools[] object (ChatTool)

Không bắt buộc. Tập hợp các công cụ mà mô hình có thể tạo lệnh gọi. Mỗi công cụ sẽ khai báo chữ ký của riêng công cụ đó.

toolChoice value (Value format)

Không bắt buộc. Kiểm soát việc mô hình có nên sử dụng công cụ hay không và sử dụng công cụ nào. Có thể là: – Chuỗi "none" (không có) để tắt các công cụ. – Chuỗi "tự động" để cho phép mô hình quyết định. – Chuỗi "bắt buộc" để buộc mô hình sử dụng một công cụ. – Đối tượng mô tả tên hàm, chỉ định công cụ cần sử dụng. Tuỳ chọn cuối cùng tuân theo giản đồ sau: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Không bắt buộc. Số lượng lượt hoàn thành đề xuất để tạo. Phải là số nguyên dương. Mặc định là 1 nếu không được đặt.

stop value (Value format)

Không bắt buộc. Tập hợp các chuỗi ký tự sẽ dừng quá trình tạo đầu ra. Lưu ý: Đây là một trường đa hình. Chuỗi này dùng để chứa một chuỗi hoặc các chuỗi lặp lại.

maxCompletionTokens integer

Không bắt buộc. Số lượng mã thông báo tối đa để đưa vào một đề xuất phản hồi. Phải là số nguyên dương.

maxTokens integer

Không bắt buộc. Số lượng mã thông báo tối đa để đưa vào một đề xuất phản hồi. Phải là số nguyên dương. SDK không còn dùng trường này nữa.

temperature number

Không bắt buộc. Kiểm soát tính ngẫu nhiên của kết quả.

topP number

Không bắt buộc. Xác suất tích luỹ tối đa của mã thông báo cần xem xét khi lấy mẫu.

responseFormat object (ResponseFormat)

Không bắt buộc. Xác định định dạng của phản hồi. Nếu bạn không đặt, phản hồi sẽ được định dạng dưới dạng văn bản.

Nội dung phản hồi

Nếu thành công, phản hồi sẽ là một phản hồi HTTP chung có định dạng do phương thức xác định.

Phương thức: embeddings

Tạo các mục nhúng từ mô hình dựa trên dữ liệu đầu vào.

Điểm cuối

bài đăng https://generativelanguage.googleapis.com/v1beta/embeddings

URL sử dụng cú pháp Chuyển mã gRPC.

Nội dung yêu cầu

Nội dung yêu cầu chứa dữ liệu có cấu trúc sau:

Trường
input value (Value format)

Bắt buộc. Dữ liệu đầu vào để tạo các giá trị nhúng. Có thể là một chuỗi hoặc danh sách chuỗi. SDK hỗ trợ danh sách số và danh sách danh sách số, nhưng tính năng này chưa được triển khai.

model string

Bắt buộc. Mô hình để tạo các mục nhúng.

encodingFormat string

Không bắt buộc. Định dạng của quá trình mã hoá. Phải là "float" hoặc "base64".

dimensions integer

Không bắt buộc. Kích thước chiều của các phần nhúng được tạo.

Nội dung phản hồi

Nếu thành công, nội dung phản hồi sẽ chứa một phiên bản của GenerateEmbeddingsResponse.

Phương thức: listModels

Liệt kê các mô hình hiện có.

Điểm cuối

get https://generativelanguage.googleapis.com/v1beta/listModels

URL sử dụng cú pháp Chuyển mã gRPC.

Nội dung yêu cầu

Nội dung yêu cầu phải trống.

Nội dung phản hồi

Nếu thành công, nội dung phản hồi sẽ chứa một phiên bản của SdkListModelsResponse.

Phương thức: chat.completions

Tạo một tập hợp các câu trả lời từ mô hình dựa trên dữ liệu đầu vào là nhật ký trò chuyện.

Điểm cuối

bài đăng https://generativelanguage.googleapis.com/v1beta/chat/completions

URL sử dụng cú pháp Chuyển mã gRPC.

Nội dung yêu cầu

Nội dung yêu cầu chứa dữ liệu có cấu trúc sau:

Trường
model string

Bắt buộc. Tên của Model dùng để tạo thao tác hoàn tất. Tên mô hình sẽ có tiền tố là "models/" nếu không có dấu gạch chéo nào xuất hiện trong tên đó.

messages[] object (Struct format)

Bắt buộc. Nhật ký trò chuyện dùng để tạo nội dung hoàn thành. Hỗ trợ truy vấn một và nhiều lượt. Lưu ý: Đây là một trường đa hình, được chuyển đổi tuần tự thành InternalChatMessage.

stream boolean

Không bắt buộc. Liệu có truyền trực tuyến phản hồi hay trả về một phản hồi duy nhất.

Nếu đúng, trường "object" trong phản hồi sẽ là "chat.completion.chunk". Nếu không, đó sẽ là "chat.completion".

streamOptions object (StreamOptions)

Không bắt buộc. Các tuỳ chọn cho yêu cầu truyền trực tuyến.

tools[] object (ChatTool)

Không bắt buộc. Tập hợp các công cụ mà mô hình có thể tạo lệnh gọi. Mỗi công cụ sẽ khai báo chữ ký của riêng công cụ đó.

toolChoice value (Value format)

Không bắt buộc. Kiểm soát việc mô hình có nên sử dụng công cụ hay không và sử dụng công cụ nào. Có thể là: – Chuỗi "none" (không có) để tắt các công cụ. – Chuỗi "tự động" để cho phép mô hình quyết định. – Chuỗi "bắt buộc" để buộc mô hình sử dụng một công cụ. – Đối tượng mô tả tên hàm, chỉ định công cụ cần sử dụng. Tuỳ chọn cuối cùng tuân theo giản đồ sau: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Không bắt buộc. Số lượng lượt hoàn thành đề xuất để tạo. Phải là số nguyên dương. Mặc định là 1 nếu không được đặt.

stop value (Value format)

Không bắt buộc. Tập hợp các chuỗi ký tự sẽ dừng quá trình tạo đầu ra. Lưu ý: Đây là một trường đa hình. Chuỗi này dùng để chứa một chuỗi hoặc các chuỗi lặp lại.

maxCompletionTokens integer

Không bắt buộc. Số lượng mã thông báo tối đa để đưa vào một đề xuất phản hồi. Phải là số nguyên dương.

maxTokens integer

Không bắt buộc. Số lượng mã thông báo tối đa để đưa vào một đề xuất phản hồi. Phải là số nguyên dương. SDK không còn dùng trường này nữa.

temperature number

Không bắt buộc. Kiểm soát tính ngẫu nhiên của kết quả.

topP number

Không bắt buộc. Xác suất tích luỹ tối đa của mã thông báo cần xem xét khi lấy mẫu.

responseFormat object (ResponseFormat)

Không bắt buộc. Xác định định dạng của phản hồi. Nếu bạn không đặt, phản hồi sẽ được định dạng dưới dạng văn bản.

Nội dung phản hồi

Nếu thành công, phản hồi sẽ là một phản hồi HTTP chung có định dạng do phương thức xác định.

Phương thức: embeddings.generate

Tạo các mục nhúng từ mô hình dựa trên dữ liệu đầu vào.

Điểm cuối

bài đăng https://generativelanguage.googleapis.com/v1beta/embeddings:generate

URL sử dụng cú pháp Chuyển mã gRPC.

Nội dung yêu cầu

Nội dung yêu cầu chứa dữ liệu có cấu trúc sau:

Trường
input value (Value format)

Bắt buộc. Dữ liệu đầu vào để tạo các giá trị nhúng. Có thể là một chuỗi hoặc danh sách chuỗi. SDK hỗ trợ danh sách số và danh sách danh sách số, nhưng tính năng này chưa được triển khai.

model string

Bắt buộc. Mô hình để tạo các mục nhúng.

encodingFormat string

Không bắt buộc. Định dạng của quá trình mã hoá. Phải là "float" hoặc "base64".

dimensions integer

Không bắt buộc. Kích thước chiều của các phần nhúng được tạo.

Nội dung phản hồi

Nếu thành công, nội dung phản hồi sẽ chứa một phiên bản của GenerateEmbeddingsResponse.

Phương thức: openai.chat.completions

Tạo một tập hợp các câu trả lời từ mô hình dựa trên dữ liệu đầu vào là nhật ký trò chuyện.

Điểm cuối

bài đăng https://generativelanguage.googleapis.com/v1beta/openai/chat/completions

URL sử dụng cú pháp Chuyển mã gRPC.

Nội dung yêu cầu

Nội dung yêu cầu chứa dữ liệu có cấu trúc sau:

Trường
model string

Bắt buộc. Tên của Model dùng để tạo thao tác hoàn tất. Tên mô hình sẽ có tiền tố là "models/" nếu không có dấu gạch chéo nào xuất hiện trong tên đó.

messages[] object (Struct format)

Bắt buộc. Nhật ký trò chuyện dùng để tạo nội dung hoàn thành. Hỗ trợ truy vấn một và nhiều lượt. Lưu ý: Đây là một trường đa hình, được chuyển đổi tuần tự thành InternalChatMessage.

stream boolean

Không bắt buộc. Liệu có truyền trực tuyến phản hồi hay trả về một phản hồi duy nhất.

Nếu đúng, trường "object" trong phản hồi sẽ là "chat.completion.chunk". Nếu không, đó sẽ là "chat.completion".

streamOptions object (StreamOptions)

Không bắt buộc. Các tuỳ chọn cho yêu cầu truyền trực tuyến.

tools[] object (ChatTool)

Không bắt buộc. Tập hợp các công cụ mà mô hình có thể tạo lệnh gọi. Mỗi công cụ sẽ khai báo chữ ký của riêng công cụ đó.

toolChoice value (Value format)

Không bắt buộc. Kiểm soát việc mô hình có nên sử dụng công cụ hay không và sử dụng công cụ nào. Có thể là: – Chuỗi "none" (không có) để tắt các công cụ. – Chuỗi "tự động" để cho phép mô hình quyết định. – Chuỗi "bắt buộc" để buộc mô hình sử dụng một công cụ. – Đối tượng mô tả tên hàm, chỉ định công cụ cần sử dụng. Tuỳ chọn cuối cùng tuân theo giản đồ sau: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Không bắt buộc. Số lượng lượt hoàn thành đề xuất để tạo. Phải là số nguyên dương. Mặc định là 1 nếu không được đặt.

stop value (Value format)

Không bắt buộc. Tập hợp các chuỗi ký tự sẽ dừng quá trình tạo đầu ra. Lưu ý: Đây là một trường đa hình. Chuỗi này dùng để chứa một chuỗi hoặc các chuỗi lặp lại.

maxCompletionTokens integer

Không bắt buộc. Số lượng mã thông báo tối đa để đưa vào một đề xuất phản hồi. Phải là số nguyên dương.

maxTokens integer

Không bắt buộc. Số lượng mã thông báo tối đa để đưa vào một đề xuất phản hồi. Phải là số nguyên dương. SDK không còn dùng trường này nữa.

temperature number

Không bắt buộc. Kiểm soát tính ngẫu nhiên của kết quả.

topP number

Không bắt buộc. Xác suất tích luỹ tối đa của mã thông báo cần xem xét khi lấy mẫu.

responseFormat object (ResponseFormat)

Không bắt buộc. Xác định định dạng của phản hồi. Nếu bạn không đặt, phản hồi sẽ được định dạng dưới dạng văn bản.

Nội dung phản hồi

Nếu thành công, phản hồi sẽ là một phản hồi HTTP chung có định dạng do phương thức xác định.

Phương thức: openai.embeddings

Tạo các mục nhúng từ mô hình dựa trên dữ liệu đầu vào.

Điểm cuối

bài đăng https://generativelanguage.googleapis.com/v1beta/openai/embeddings

URL sử dụng cú pháp Chuyển mã gRPC.

Nội dung yêu cầu

Nội dung yêu cầu chứa dữ liệu có cấu trúc sau:

Trường
input value (Value format)

Bắt buộc. Dữ liệu đầu vào để tạo các giá trị nhúng. Có thể là một chuỗi hoặc danh sách chuỗi. SDK hỗ trợ danh sách số và danh sách danh sách số, nhưng tính năng này chưa được triển khai.

model string

Bắt buộc. Mô hình để tạo các mục nhúng.

encodingFormat string

Không bắt buộc. Định dạng của quá trình mã hoá. Phải là "float" hoặc "base64".

dimensions integer

Không bắt buộc. Kích thước chiều của các phần nhúng được tạo.

Nội dung phản hồi

Nếu thành công, nội dung phản hồi sẽ chứa một phiên bản của GenerateEmbeddingsResponse.

Phương thức: openai.models

Liệt kê các mô hình hiện có.

Điểm cuối

get https://generativelanguage.googleapis.com/v1beta/openai/models

URL sử dụng cú pháp Chuyển mã gRPC.

Nội dung yêu cầu

Nội dung yêu cầu phải trống.

Nội dung phản hồi

Nếu thành công, nội dung phản hồi sẽ chứa một phiên bản của SdkListModelsResponse.

ChatTool

Một công cụ mà mô hình có thể tạo lệnh gọi.

Trường
function object (ChatFunction)

Bắt buộc. Tên của công cụ.

type string

Bắt buộc. Bắt buộc, phải là "hàm".

Biểu diễn dưới dạng JSON
{
  "function": {
    object (ChatFunction)
  },
  "type": string
}

ChatFunction

Một hàm mà mô hình có thể tạo lệnh gọi.

Trường
name string

Bắt buộc. Tên hàm.

description string

Không bắt buộc. Nội dung mô tả về hàm.

parameters object (Struct format)

Không bắt buộc. Các tham số của hàm.

strict boolean

Không bắt buộc. Liệu quy trình xác thực giản đồ có nghiêm ngặt hay không. Nếu giá trị là true, mô hình sẽ không thành công nếu giản đồ không hợp lệ. LƯU Ý: Thông số này hiện bị bỏ qua.

Biểu diễn dưới dạng JSON
{
  "name": string,
  "description": string,
  "parameters": {
    object
  },
  "strict": boolean
}

GenerateEmbeddingsResponse

Phản hồi để tạo tính năng nhúng.

Trường
object string

Chỉ có đầu ra. Luôn "nhúng", theo yêu cầu của SDK.

data[] object (GenerateEmbeddingsEmbedding)

Chỉ có đầu ra. Danh sách các nội dung nhúng được yêu cầu.

model string

Chỉ có đầu ra. Mô hình dùng để tạo các mục nhúng.

Biểu diễn dưới dạng JSON
{
  "object": string,
  "data": [
    {
      object (GenerateEmbeddingsEmbedding)
    }
  ],
  "model": string
}

GenerateEmbeddingsEmbedding

Một vectơ nhúng do mô hình tạo ra.

Trường
object string

Chỉ có đầu ra. Luôn "nhúng", theo yêu cầu của SDK.

index integer

Chỉ có đầu ra. Chỉ mục của phần nhúng trong danh sách phần nhúng.

embedding value (Value format)

Chỉ có đầu ra. Vectơ nhúng được tạo cho dữ liệu đầu vào. Có thể là danh sách số thực hoặc chuỗi base64 mã hoá danh sách số thực có bố cục kiểu C (tương thích với Numpy).

Biểu diễn dưới dạng JSON
{
  "object": string,
  "index": integer,
  "embedding": value
}

HttpBody

Thông báo đại diện cho nội dung HTTP tùy ý. Chỉ nên sử dụng HttpBody cho các định dạng nội dung không thể biểu diễn dưới dạng JSON, chẳng hạn như trang nhị phân thô hoặc trang HTML.

Có thể sử dụng thông báo này trong cả các phương thức API phát trực tuyến và không phải phát trực tuyến trong yêu cầu cũng như phản hồi.

HttpBody có thể dùng làm trường yêu cầu cấp cao nhất. Điều này rất thuận tiện nếu người dùng muốn trích xuất các tham số từ mẫu URL hoặc HTTP vào các trường yêu cầu và cũng muốn truy cập vào phần nội dung HTTP thô.

Ví dụ:

message GetResourceRequest {
  // A unique request id.
  string requestId = 1;

  // The raw HTTP body is bound to this field.
  google.api.HttpBody http_body = 2;

}

service ResourceService {
  rpc GetResource(GetResourceRequest)
    returns (google.api.HttpBody);
  rpc UpdateResource(google.api.HttpBody)
    returns (google.protobuf.Empty);

}

Ví dụ với các phương thức phát trực tuyến:

service CaldavService {
  rpc GetCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);
  rpc UpdateCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);

}

Việc sử dụng loại thông báo này chỉ thay đổi cách xử lý các yêu cầu và nội dung phản hồi, tất cả các tính năng khác sẽ tiếp tục hoạt động theo cách như cũ.

Trường
contentType string

Giá trị tiêu đề HTTP Content-Type chỉ định loại nội dung của nội dung.

data string (bytes format)

Nội dung yêu cầu/phản hồi HTTP dưới dạng tệp nhị phân thô.

Chuỗi được mã hoá base64.

extensions[] object

Siêu dữ liệu về phản hồi dành riêng cho ứng dụng. Phải được đặt trong phản hồi đầu tiên cho API phát trực tuyến.

Một đối tượng chứa các trường thuộc một loại tuỳ ý. Một trường bổ sung "@type" chứa URI xác định loại. Ví dụ: { "id": 1234, "@type": "types.example.com/standard/id" }.

Biểu diễn dưới dạng JSON
{
  "contentType": string,
  "data": string,
  "extensions": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}

ResponseFormat

Xác định định dạng của phản hồi.

Trường
type string

Bắt buộc. Loại phản hồi. Có thể là: – "text": Định dạng câu trả lời dưới dạng văn bản. – "json_object": Định dạng phản hồi dưới dạng đối tượng JSON. – "jsonSchema": Định dạng phản hồi dưới dạng đối tượng JSON theo giản đồ đã cho.

jsonSchema object (ResponseFormatSchema)

Không bắt buộc. Giản đồ JSON cần tuân theo. Chỉ được dùng nếu loại là "jsonSchema".

Biểu diễn dưới dạng JSON
{
  "type": string,
  "jsonSchema": {
    object (ResponseFormatSchema)
  }
}

ResponseFormatSchema

Giản đồ cho phản hồi.

Trường
description string

Không bắt buộc. Nội dung mô tả đối tượng được biểu thị bằng giản đồ.

name string

Bắt buộc. Tên của loại đối tượng được biểu thị bằng giản đồ.

strict boolean

Không bắt buộc. Liệu quy trình xác thực giản đồ có nghiêm ngặt hay không. Nếu giá trị là true, mô hình sẽ không thành công nếu giản đồ không hợp lệ. LƯU Ý: Thông số này hiện bị bỏ qua.

schema object (Struct format)

Không bắt buộc. Giản đồ JSON cần tuân theo.

Biểu diễn dưới dạng JSON
{
  "description": string,
  "name": string,
  "strict": boolean,
  "schema": {
    object
  }
}

SdkListModelsResponse

Phản hồi cho các mô hình danh sách.

Trường
object string

Chỉ có đầu ra. Luôn là "danh sách", bắt buộc theo SDK.

data[] object (SdkModel)

Chỉ có đầu ra. Danh sách các nội dung nhúng được yêu cầu.

Biểu diễn dưới dạng JSON
{
  "object": string,
  "data": [
    {
      object (SdkModel)
    }
  ]
}

SdkModel

Đối tượng mô hình.

Trường
id string

Chỉ có đầu ra. Mã nhận dạng của mô hình.

object string

Chỉ có đầu ra. Luôn là "mô hình", do SDK yêu cầu.

created string (int64 format)

Chỉ có đầu ra. Dấu thời gian Unix (tính bằng giây) khi mô hình được tạo.

owned_by string

Chỉ có đầu ra. Tổ chức sở hữu mô hình.

Biểu diễn dưới dạng JSON
{
  "id": string,
  "object": string,
  "created": string,
  "owned_by": string
}

StreamOptions

Các tuỳ chọn cho yêu cầu truyền trực tuyến.

Trường
includeUsage boolean

Không bắt buộc. Nếu được đặt, hãy đưa số liệu thống kê về mức sử dụng vào phản hồi.

Biểu diễn dưới dạng JSON
{
  "includeUsage": boolean
}