随着GPT系列的对话生成语言模型的推出和发展,我们可以比较轻松的借助这些工具搭建出AI助手服务。可以说,GPT系列的语言模型就是搭建个人助手服务的一个要素。
要素: 某个项目工程的研发需要依赖一个或多个基础资源,这些资源可以被称作该项目工程的研发要素,简称为要素。
注册申请API Key
通过科学的上网方式,我们可以有效地从ai.google.dev获取所需的Gemini-Pro API Key。
安装依赖
使用Python来做尝试,官方文档推荐了对应的SDK,我们可以安装一下:
pip install -q -U google-generativeai
通过SDK启用模型
我们先引入SDK:
import google.generativeai as genai
接下来配置API Key:
genai.configure(api_key='你的API Key')
可以看一下有哪些内容生成类型的模型:
for m in genai.list_models():
if 'generateContent' in m.supported_generation_methods:
print(m.name)
目前来说有两个生成类型的模型:
- ‘gemini-pro’: 文本对话模型
- ‘gemini-pro-vision’: 具有视觉理解的文本对话模型
选择并启用文本对话模型:
model = genai.GenerativeModel('gemini-pro')
尝试对话
现在,我们可以发送一段文本指令,让其返回一段内容:
response = model.generate_content('写一首七言律诗,描述冬日萧瑟的田间景色。')
generate_content
方法会返回response
对象,我们可以通过它的text
属性查看模型生成的内容:
print(response.text)
上述代码的打印输出「一般不会相同」:
寒风萧萧冷气侵,
枯草败叶满目陈。
农田寂静无人迹,
唯有寒鸦绕树鸣。
沟渠冰封水尽涸,
枝头衰柳苦伶仃。
落日西沉归山去,
田间萧瑟倍凄清。
我们再让它回答一个编程问题:
response = model.generate_content('使用golang编写一个简单的http文件服务器。')
print(response.text)
上述代码的打印输出「一般不会相同」:
package main
import (
"fmt"
"log"
"net/http"
"os"
)
func main() {
// Specify the directory that you want to serve files from
dir := "static"
// Create a new HTTP file server
fs := http.FileServer(http.Dir(dir))
// Create a new HTTP server
server := &http.Server{
Addr: ":8080",
Handler: fs,
}
// Start the HTTP server
log.Printf("Listening on port :8080")
if err := server.ListenAndServe(); err != nil {
// Handle the error
fmt.Println(err)
os.Exit(1)
}
}
-
package main
: This line indicates that this is the main Go source file for the program. -
import (...):
: This line includes the necessary standard libraries for the program to function. -
func main()
: This is the entry point for the program, where execution begins. -
dir := "static"
: This line specifies the directory from which the program will serve files. -
fs := http.FileServer(http.Dir(dir))
: This line creates a new HTTP file server that serves files from the specified directory. -
server := &http.Server{...}
: This line creates a new HTTP server object. TheAddr
field specifies the port on which the server will listen for requests, and theHandler
field specifies the HTTP file server that will handle the requests. -
server.ListenAndServe()
: This line starts the HTTP server. If an error occurs while starting the server, it is printed to the console and the program exits with an exit code of 1.
To use this program, you can follow these steps:
-
Create a directory named “static” in the same directory as the program file.
-
Copy the files that you want to serve to the “static” directory.
-
Run the program using the command
go run main.go
. -
Open a web browser and navigate to
http://localhost:8080
to access the files in the “static” directory.
多轮对话模式
除了这种单次内容生成,SDK还支持多轮对话:
model = genai.GenerativeModel('gemini-pro')
chat = model.start_chat(history=[])
response = chat.send_message(
"Pretend you\'re a snowman and stay in character for each response.")
print(response.text)
response = chat.send_message(
"What\'s your favorite season of the year?")
print(response.text)
今天我们简单的了解了一下Gemini AI的开发使用,如果你对更多Gemini相关的内容感兴趣,可以翻看一下它的官方文档做进一步的学习。