Cloudflare Docs
Workers AI
Visit Workers AI on GitHub
Set theme to dark (⇧+D)

Large language model (LLM)

Llama 2 is a family of generative text models and can be adapted for a variety of natural language generation tasks.

​​ Examples - chat style with system prompt (preffered)


import { Ai } from '@cloudflare/ai'
export interface Env {
AI: any;
}
export default {
async fetch(request: Request, env: Env) {
const ai = new Ai(env.AI);
const messages = [
{ role: 'system', content: 'You are a friendly assistant' },
{ role: 'user', content: 'What is the origin of the phrase Hello, World' }
];
const response = await ai.run('@cf/meta/llama-2-7b-chat-int8', { messages });
return new Response(JSON.stringify(response));
},
};

async function run(model, prompt) {
const messages = [
{ role: 'system', content: 'You are a friendly assistant' },
{ role: 'user', content: prompt }
];
const response = await fetch(
`https://api.cloudflare.com/client/v4/accounts/{account_id}/ai/run/${model}`,
{
headers: { Authorization: "Bearer {API_TOKEN}" },
method: "POST",
body: JSON.stringify({ messages }),
}
);
const result = await response.json();
return result;
}
run('@cf/meta/llama-2-7b-chat-int8', 'Tell me a story').then((response) => {
console.log(JSON.stringify(response));
});

import requests
API_BASE_URL = "https://api.cloudflare.com/client/v4/accounts/{account_id}/ai/run/"
headers = {"Authorization": "Bearer {API_TOKEN}"}
def run(model, prompt)
messages = [
{ "role": "system", "content": "You are a friendly assistant" },
{ "role": "user", "content": prompt }
]
response = requests.post(f"{API_BASE_URL}{model}", headers=headers, json=prompt)
return response.json()
output = run("@cf/meta/llama-2-7b-chat-int8", "Tell me a story")

$ curl https://api.cloudflare.com/client/v4/accounts/{account_id}/ai/run/@cf/meta/llama-2-7b-chat-int8 \
-X POST \
-H "Authorization: Bearer {API_TOKEN}" \
-d "{ "messages": [{ "role": "system", "content": "You are a friendly assistant" }, { "role": "user", "content": "prompt" } ]}'

Example Workers AI response


{
"response":
"The origin of the phrase \"Hello, World\" is not well-documented, but it is believed to have originated in the early days of computing. In the 1970s, when personal computers were first becoming popular, many programming languages, including C, had a simple \"Hello, World\" program that was used to demonstrate the basics of programming.\nThe idea behind the program was to print the words \"Hello, World\" on the screen, and it was often used as a first program for beginners to learn the basics of programming. Over time, the phrase \"Hello, World\" became a common greeting among programmers and computer enthusiasts, and it is now widely recognized as a symbol of the computing industry.\nIt's worth noting that the phrase \"Hello, World\" is not a specific phrase that was coined by any one person or organization, but rather a catchphrase that evolved over time as a result of its widespread use in the computing industry."
}

​​ API schema

The following schema is based on JSON Schema


{
"task": "text-generation",
"tsClass": "AiTextGeneration",
"jsonSchema": {
"input": {
"type": "object",
"oneOf": [
{
"properties": {
"prompt": {
"type": "string"
}
},
"required": ["prompt"]
},
{
"properties": {
"messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": {
"type": "string"
},
"content": {
"type": "string"
}
},
"required": ["role", "content"]
}
}
},
"required": ["messages"]
}
]
},
"output": {
"type": "object",
"properties": {
"response": {
"type": "string"
}
}
}
}
}