链接:https://developers.generativeai.google/api/rest/generativelanguage [生成语言] PaLM API 允许开发者使用 PaLM 模型构建生成式 AI 应用程序。大型语言模型(LLMs)是一种强大而多功能的机器学习模型,它通过一系列提示使计算机理解和生成自然语言。PaLM API 基于谷歌的下一代 LLM,即 PaLM。它擅长执行各种不同的任务,如代码生成、推理和写作。你可以使用 PaLM API 为内容生成、对话代理、摘要和分类系统等用例构建生成式 AI 应用程序。
基于链接:https://developers.generativeai.google/api/rest/generativelanguage/models [模型 REST API]。
先决条件
要访问PaLM2 REST API,您需要从链接获取访问API密钥:https://makersuite.google.com/app/apikey[makersuite]。
Note
|
目前PaLM API在美国以外地区无法使用,但您可以使用VPN进行测试。 |
Spring AI项目定义了一个名为`spring.ai.vertex.ai.api-key`的配置属性,你应该将其设置为获取的`API Key`的值。导出环境变量是设置该配置属性的一种方式:
export SPRING_AI_VERTEX_AI_API_KEY=<INSERT KEY HERE>
自动配置
Spring AI为VertexAI嵌入式客户端提供Spring Boot自动配置。要启用它,请将以下依赖项添加到项目的Maven `pom.xml`文件中:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-vertex-ai-palm2-spring-boot-starter</artifactId>
</dependency>
或添加到您的Gradle build.gradle
构建文件中。
dependencies {
implementation 'org.springframework.ai:spring-ai-vertex-ai-palm2-spring-boot-starter'
}
Tip
|
请参考依赖管理部分,将Spring AI BOM添加到你的构建文件中。 |
嵌入属性
前缀 spring.ai.vertex.ai
被用作属性前缀,使你能够连接到 VertexAI。
Property | Description | Default |
---|---|---|
spring.ai.vertex.ai.ai.base-url |
The URL to connect to |
|
spring.ai.vertex.ai.api-key |
||
The API Key |
- |
前缀 spring.ai.vertex.ai.embedding
是一个属性前缀,它允许你为 VertexAI 聊天配置嵌入式客户端实现。
属性 | 描述 | 默认值 |
---|---|---|
spring.ai.vertex.ai.embedding.enabled |
启用 Vertex AI PaLM API 嵌入客户端。 |
true |
spring.ai.vertex.ai.embedding.model |
使用的 Vertex 嵌入模型 |
embedding-gecko-001 |
样本控制器
访问
[创建]一个新的Spring Boot项目,并将`spring-ai-vertex-ai-palm2-spring-boot-starter`添加到你的pom(或gradle)依赖中。https://start.spring.io/
在`src/main/resources`目录下添加一个`application.properties`文件,以启用并配置VertexAi Chat客户端:
spring.ai.vertex.ai.api-key=YOUR_API_KEY
spring.ai.vertex.ai.embedding.model=embedding-gecko-001
Tip
|
将 api-key 替换为您的 VertexAI 凭证。
|
这将创建一个 VertexAiPaLm2EmbeddingClient
实现,你可以将它注入到你的类中。这里有一个简单的 @Controller
类的例子,它使用嵌入客户端进行文本生成。
@RestController
public class EmbeddingController {
private final EmbeddingClient embeddingClient;
@Autowired
public EmbeddingController(EmbeddingClient embeddingClient) {
this.embeddingClient = embeddingClient;
}
@GetMapping("/ai/embedding")
public Map embed(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
EmbeddingResponse embeddingResponse = this.embeddingClient.embedForResponse(List.of(message));
return Map.of("embedding", embeddingResponse);
}
}
手动配置
The VertexAiPaLm2EmbeddingClient 实现了 EmbeddingClient
并使用 [low-level-api] 与 VertexAI 服务连接。
将`spring-ai-vertex-ai`依赖项添加到项目的Maven `pom.xml`文件中:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-vertex-ai-palm2</artifactId>
</dependency>
或添加到您的Gradle build.gradle
构建文件中。
dependencies {
implementation 'org.springframework.ai:spring-ai-vertex-ai-palm2'
}
Tip
|
请参考依赖管理部分,将Spring AI BOM添加到你的构建文件中。 |
接下来,创建一个`VertexAiPaLm2EmbeddingClient`并使用它来进行文本生成:
VertexAiPaLm2Api vertexAiApi = new VertexAiPaLm2Api(< YOUR PALM_API_KEY>);
var embeddingClient = new VertexAiPaLm2EmbeddingClient(vertexAiApi);
EmbeddingResponse embeddingResponse = embeddingClient
.embedForResponse(List.of("Hello World", "World is big and salvation is near"));
低级别 VertexAiPaLm2Api 客户端 [[低级别 API]]
VertexAiPaLm2Api 提供了用于 VertexAiPaLm2Api 聊天 API 的轻量级 Java 客户端。
以下类图阐述了`VertexAiPaLm2Api`嵌入接口和构建模块:
这是一个简单的代码片段,展示如何以编程方式使用API:
VertexAiPaLm2Api vertexAiApi = new VertexAiPaLm2Api(< YOUR PALM_API_KEY>);
// Generate
var prompt = new MessagePrompt(List.of(new Message("0", "Hello, how are you?")));
GenerateMessageRequest request = new GenerateMessageRequest(prompt);
GenerateMessageResponse response = vertexAiApi.generateMessage(request);
// 嵌入文本
Embedding embedding = vertexAiApi.embedText("你好,你怎么样?");
// 批量嵌入
List<Embedding> embeddings = vertexAiApi.batchEmbedText(List.of("Hello, how are you?", "I am fine, thank you!"));