docker-compose.yml
首先,定义拉取 Ollama 的 docker 镜像的要求。docker-compose.yml
使用以下代码创建一个文件。
services:
ollama:
image: ollama/ollama:latest
restart: always
ports:
- "8080:11434"
注意:如果您之前拉取过 Ollama 的镜像,请确保使用 删除之前的镜像docker rmi ollama/ollama
,以便在运行 docker compose 文件时拉取最新的镜像。
最后,使用 启动容器docker compose up --build -d
。
一旦启动了容器,现在就该提取所需的模型了。为此,我们需要使用 进入容器docker exec -it <Container's Name> bash
。将“容器名称”替换为容器的名称。这将启动一个交互式 bash shell 终端。
从此 shell 中,要获取所需的模型,请使用命令ollama pull <Model Name>
。将“模型名称”替换为所需模型的名称。对于本教程,我使用的是llama3.2:latest
。
一旦模型被拉出,您就可以使用exit
命令退出shell。
现在是时候提示模型了。您可以使用任何 API 测试应用程序,例如Postman或Thunder Client。在本教程中,我使用的是 Thunder Client。
要生成响应,请使用以下主体发出POST
请求,http://localhost:8080/api/generate
{
"model":"Model Name", // Replace this with the model that you pulled.
"prompt":"Prompt", // Add your prompt here.
"stream":false,
"format": {} // Add the required structure here.
}
此类请求将生成响应并以所需格式返回。当我向“llama3.2:latest”提示“列出印度 5 个主要语言的城市”时,请查看以下响应。
要定义所需的结构,您需要首先定义类型。类型可以是字符串、对象或数组。以下是如何定义类型。
{
"type": "object" // or "string" or "array"
}
如果类型定义为对象,您还需要添加带有键的键properties
。键包含响应中所需的值列表及其类型。最后,键的值是一个字符串数组,其中包含 中定义的所有键的列表。required``type``properties``required``properties
这个解释让人困惑。下面是一个例子,以便更好地理解。对于提示What is the capital of India and the primary language spoken there.
,以下可以是结构。
{
"type": "object",
"properties": {
"capital": {
"type": "string"
},
"primary_language": {
"type": "string"
}
},
"required": ["capital", "primary_language"]
}
属性的类型,例如 capital 的类型也可以是对象或数组。
如果类型定义为数组,则还需要添加items
键。items
键包含数组项的类型。例如,对于提示List 5 cities of Canada.
,以下可以是结构。
{
"type": "object",
"properties": {
"cities": {
"type": "array",
"items": {
"type": "string"
}
},
},
"required": ["cities"]
}
powered by kaifamiao