Tài liệu tham khảo API
Giới thiệu
Mỗi nút Gaia là một máy chủ API tương thích với OpenAI. Bạn có thể xây dựng ứng dụng của mình dựa trên API nút Gaia. Bạn cũng có thể thay thế cấu hình API OpenAI bằng API nút Gaia trong các khuôn khổ tác nhân AI khác.
URL cơ sở để gửi tất cả các yêu cầu API là https://node_id.gaianet.network/v1
.
Hãy chắc chắn thay thế KHÓA_API_CỦA_BẠN_ĐƯỢC_ĐẾN_Đ
với bạn khóa API riêng. Để có được khóa API của riêng bạn, hãy làm theo cái này hướng dẫn.
Điểm cuối
Tán gẫu
Các Trò chuyện / hoàn thành
điểm cuối trả về phản hồi LLM dựa trên dấu nhắc hệ thống và truy vấn người dùng.
Không phát trực tuyến
Theo mặc định, API phản hồi với câu trả lời đầy đủ trong phản hồi HTTP.
Yêu cầu
curl -X POST https://node_id.gaianet.network/v1/chat/completions \
-H 'accept:application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY_GOES_HERE' \
-d '{"messages":[{"role":"system", "content": "You are a helpful assistant."}, {"role":"user", "content": "What is the capital of France?"}], "model": "model_name"}'
Phản ứng:
{"id":"chatcmpl-bcfeebe0-5372-42c0-ac92-0615213e1c97","object":"chat.completion","created":1716380086,"model":"Llama-3-8B-Instruct-262k-Q5_K_M","choices":[{"index":0,"message":{"role":"assistant","content":"Paris."},"finish_reason":"stop"}],"usage":{"prompt_tokens":61,"completion_tokens":4,"total_tokens":65}}%
Streaming
Thêm "luồng":true
trong yêu cầu của bạn để làm cho API gửi lại phản hồi một phần khi LLM tạo câu trả lời.
Yêu cầu:
curl -X POST https://node_id.gaianet.network/v1/chat/completions \
-H 'accept:application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY_GOES_HERE' \
-d '{"messages":[{"role":"system", "content": "You are a helpful assistant."}, {"role":"user", "content": "What is the capital of France?"}], "model": "model_name", "stream":true}'
Phản ứng:
data: {"id":"chatcmpl-73a1f57d-185e-42c2-b8a6-ba0bae58f3b4","choices":[{"index":0,"delta":{"role":"assistant","content":"I"},"logprobs":null,"finish_reason":null}],"created":1716381054,"model":"Llama-3-8B-Instruct-262k-Q5_K_M","system_fingerprint":"fp_44709d6fcb","object":"chat.completion.chunk"}
data: {"id":"chatcmpl-73a1f57d-185e-42c2-b8a6-ba0bae58f3b4","choices":[{"index":0,"delta":{"role":"assistant","content":" am"},"logprobs":null,"finish_reason":null}],"created":1716381054,"model":"Llama-3-8B-Instruct-262k-Q5_K_M","system_fingerprint":"fp_44709d6fcb","object":"chat.completion.chunk"}
data: {"id":"chatcmpl-73a1f57d-185e-42c2-b8a6-ba0bae58f3b4","choices":[{"index":0,"delta":{"role":"assistant","content":" a"},"logprobs":null,"finish_reason":null}],"created":1716381054,"model":"Llama-3-8B-Instruct-262k-Q5_K_M","system_fingerprint":"fp_44709d6fcb","object":"chat.completion.chunk"}
...
data: {"id":"chatcmpl-73a1f57d-185e-42c2-b8a6-ba0bae58f3b4","choices":[{"index":0,"delta":{"role":"assistant","content":" an"},"logprobs":null,"finish_reason":null}],"created":1716381055,"model":"Llama-3-8B-Instruct-262k-Q5_K_M","system_fingerprint":"fp_44709d6fcb","object":"chat.completion.chunk"}
data: {"id":"chatcmpl-73a1f57d-185e-42c2-b8a6-ba0bae58f3b4","choices":[{"index":0,"delta":{"role":"assistant","content":" AI"},"logprobs":null,"finish_reason":null}],"created":1716381055,"model":"Llama-3-8B-Instruct-262k-Q5_K_M","system_fingerprint":"fp_44709d6fcb","object":"chat.completion.chunk"}
data: {"id":"chatcmpl-73a1f57d-185e-42c2-b8a6-ba0bae58f3b4","choices":[{"index":0,"delta":{"role":"assistant","content":"."},"logprobs":null,"finish_reason":null}],"created":1716381055,"model":"Llama-3-8B-Instruct-262k-Q5_K_M","system_fingerprint":"fp_44709d6fcb","object":"chat.completion.chunk"}
data: [DONE]
Nội dung yêu cầu
Trường | Kiểu | Bắt buộc | Sự miêu tả | Mặc định | Ví dụ |
---|---|---|---|---|---|
Thư | Danh sách | Bắt buộc | Danh sách tin nhắn cho cuộc trò chuyện. 1 . Thông báo hệ thống (phụ thuộc vào chế độ ngôn ngữ lớn mà bạn sử dụng) * nội dung của các thông báo hệ thống là bắt buộc * "Vai trò":"Hệ thống" là bắt buộc2. Tin nhắn người dùng (bắt buộc) * nội dung là bắt buộc. * "Vai trò":"Người dùng" là bắt buộc | N/A | "messages": ["role": "system","content": "You are a helpful assistant."},{"role": "user", "content": "Hello!"}] |
mẫu | Xâu | Bắt buộc | Mô hình trò chuyện bạn đã sử dụng | N/A | Llama-3-8B-262K-Q5_K_M |
top_p | Số | Tùy chọn | Một thay thế cho lấy mẫu với nhiệt độ. Các giá trị cao hơn như 0,8 sẽ làm cho đầu ra ngẫu nhiên hơn, trong khi các giá trị thấp hơn như 0,2 sẽ làm cho nó tập trung và xác định hơn. | 1 | Số từ 0 đến 1. |
nhiệt độ | Số | Tùy chọn | Các giá trị cao hơn như 0,8 sẽ làm cho đầu ra ngẫu nhiên hơn, trong khi các giá trị thấp hơn như 0,2 sẽ làm cho nó tập trung và xác định hơn. | 1 | Số từ 0 đến 2. |
presence_penalty | Số | Tùy chọn | Các giá trị dương phạt các mã thông báo mới dựa trên việc chúng có xuất hiện trong văn bản cho đến nay hay không, làm tăng khả năng mô hình nói về các chủ đề mới. | 0 | Số từ -2.0 đến 2.0. |
dòng | Boolean | Tùy chọn | Tạo đầu ra phát trực tuyến câu trả lời | SAI | "luồng":true |
frequency_penalty | Số | Tùy chọn | Các giá trị dương phạt các mã thông báo mới dựa trên tần suất hiện có của chúng trong văn bản cho đến nay, làm giảm khả năng lặp lại nguyên văn cùng một dòng của mô hình. | 0 | Số từ -2.0 đến 2.0. |
Cơ thể phản hồi
Trường | Kiểu | Phát trực tuyến hoặc không phát trực tuyến | Sự miêu tả | Mặc định | Ví dụ |
---|---|---|---|---|---|
Id | xâu | Cả hai | Mã định danh duy nhất để hoàn tất cuộc trò chuyện. | Được tạo ngẫu nhiên | CHATCMPL-73A1F57D-185E-42C2-B8A6-Ba0BAE58F3B4 |
đối tượng | xâu | Cả hai | Loại đối tượng | chat.completion.chunk ở chế độ phát trực tuyến.chat.completion ở chế độ không phát trực tuyến. | chat.completion.chunk ở chế độ phát trực tuyến.chat.completion ở chế độ không phát trực tuyến. |
Sự lựa chọn | mảng | Cả hai | Danh sách các lựa chọn hoàn thành cuộc trò chuyện. | "choices":[{"index":0,"message":{"role":"assistant","content":"Paris."},"finish_reason":"stop"}] | |
Tạo | số nguyên | Cả hai | Dấu thời gian Unix (tính bằng giây) khi hoàn tất trò chuyện được tạo. | N/A | 1716380086 |
mẫu | xâu | Cả hai | Mô hình được sử dụng để hoàn thành trò chuyện. | Tùy thuộc vào kiểu máy bạn sử dụng. | Llama-3-8B-Hướng dẫn-Q5_K_M |
Sử dụng | đối tượng | Cả hai | Thống kê sử dụng cho yêu cầu hoàn thành, bao gồm completion_tokens, prompt_tokens và total_tokens. | N/A | "usage":{"prompt_tokens":61,"completion_tokens":4,"total_tokens":65} |
Nhúng
Các Nhúng
Điểm cuối điện toán nhúng cho truy vấn người dùng hoặc đoạn tệp.
Yêu cầu
curl -X POST https://node_id.gaianet.network/v1/embeddings \
-H 'accept:application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY_GOES_HERE' \
-d '{"model": "nomic-embed-text-v1.5.f16", "input":["Paris, city and capital of France, ..., for Paris has retained its importance as a centre for education and intellectual pursuits.", "Paris’s site at a crossroads ..., drawing to itself much of the talent and vitality of the provinces."]}'
Phản ứng:
{
"object": "list",
"data": [
{
"index": 0,
"object": "embedding",
"embedding": [
0.1428378969,
-0.0447309874,
0.007660218049,
...
-0.0128974719,
-0.03543198109,
0.03974733502,
0.00946635101,
-0.01531364303
]
},
{
"index": 1,
"object": "embedding",
"embedding": [
0.0697753951,
-0.0001159032545,
0.02073983476,
...
0.03565846011,
-0.04550019652,
0.02691745944,
0.02498772368,
-0.003226313973
]
}
],
"model": "nomic-embed-text-v1.5.f16",
"usage": {
"prompt_tokens": 491,
"completion_tokens": 0,
"total_tokens": 491
}
}
Thu hồi
Các thu hồi
Điểm cuối có thể truy xuất văn bản từ bộ sưu tập vector của nút dựa trên truy vấn của người dùng.
Yêu cầu:
curl -X POST https://node_id.gaianet.network/v1/retrieve \
-H 'accept:application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY_GOES_HERE' \
-d '{"messages":[{"role":"system", "content": "You are a helpful assistant."}, {"role":"user", "content": "What is the location of Paris?"}], "model":"nomic-embed-text-v1.5.f16"}'
Phản ứng:
{
"points": [
{
"source": "\"Paris is located in northern central France, in a north-bending arc of the river Seine whose crest includes two islands, the Île Saint-Louis and the larger Île de la Cité, which form the oldest part of the city. The river's mouth on the English Channel is about 233 mi downstream from the city. The city is spread widely on both banks of the river. Overall, the city is relatively flat, and the lowest point is 35 m above sea level. Paris has several prominent hills, the highest of which is Montmartre at 130 m.\\n\"",
"score": 0.74011195
},
{
"source": "\"The Paris region is the most active water transport area in France, with most of the cargo handled by Ports of Paris in facilities located around Paris. The rivers Loire, Rhine, Rhône, Me\\n\"",
"score": 0.63990676
},
{
"source": "\"Paris\\nCountry\\tFrance\\nRegion\\nÎle-de-France\\r\\nDepartment\\nParis\\nIntercommunality\\nMétropole du Grand Paris\\nSubdivisions\\n20 arrondissements\\nGovernment\\n • Mayor (2020–2026)\\tAnne Hidalgo (PS)\\r\\nArea\\n1\\t105.4 km2 (40.7 sq mi)\\n • Urban\\n (2020)\\t2,853.5 km2 (1,101.7 sq mi)\\n • Metro\\n (2020)\\t18,940.7 km2 (7,313.0 sq mi)\\nPopulation\\n (2023)\\n2,102,650\\n • Rank\\t9th in Europe\\n1st in France\\r\\n • Density\\t20,000/km2 (52,000/sq mi)\\n • Urban\\n (2019)\\n10,858,852\\n • Urban density\\t3,800/km2 (9,900/sq mi)\\n • Metro\\n (Jan. 2017)\\n13,024,518\\n • Metro density\\t690/km2 (1,800/sq mi)\\nDemonym(s)\\nParisian(s) (en) Parisien(s) (masc.), Parisienne(s) (fem.) (fr), Parigot(s) (masc.), \\\"Parigote(s)\\\" (fem.) (fr, colloquial)\\nTime zone\\nUTC+01:00 (CET)\\r\\n • Summer (DST)\\nUTC+02:00 (CEST)\\r\\nINSEE/Postal code\\t75056 /75001-75020, 75116\\r\\nElevation\\t28–131 m (92–430 ft)\\n(avg. 78 m or 256 ft)\\nWebsite\\twww.paris.fr\\r\\n1 French Land Register data, which excludes lakes, ponds, glaciers > 1 km2 (0.386 sq mi or 247 acres) and river estuaries.\\n\"",
"score": 0.62259054
},
{
"source": "\" in Paris\\n\"",
"score": 0.6152092
},
{
"source": "\"The Parisii, a sub-tribe of the Celtic Senones, inhabited the Paris area from around the middle of the 3rd century BC. One of the area's major north–south trade routes crossed the Seine on the île de la Cité, which gradually became an important trading centre. The Parisii traded with many river towns (some as far away as the Iberian Peninsula) and minted their own coins.\\n\"",
"score": 0.5720232
}
],
"limit": 5,
"score_threshold": 0.4
}
Lấy mô hình
Các Mô hình
Điểm cuối cung cấp các mô hình trò chuyện và nhúng có sẵn trên nút.
Yêu cầu:
curl -X POST https://node_id.gaianet.network/v1/models
Phản ứng:
{"object":"list","data":[{"id":"Llama-3-8B-Instruct-262k-Q5_K_M","created":1716383261,"object":"model","owned_by":"Not specified"},{"id":"nomic-embed-text-v1.5.f16","created":1716383261,"object":"model","owned_by":"Not specified"}]}%
Nhận thông tin nút
Các Thông tin
Endpoint cung cấp thông tin chi tiết về node.
Yêu cầu:
cuộn tròn -X POST https://node_id.gaianet.network/v1/info
Phản ứng:
{
"version": "0.5.0",
"plugin_version": "b2694 (commit 0d56246f)",
"port": "8080",
"models": [
{
"name": "Llama-2-7b-chat-hf-Q5_K_M",
"type": "chat",
"prompt_template": "Llama2Chat",
"n_predict": 1024,
"n_gpu_layers": 100,
"ctx_size": 4096,
"batch_size": 512,
"temperature": 1.0,
"top_p": 1.0,
"repeat_penalty": 1.1,
"presence_penalty": 0.0,
"frequency_penalty": 0.0
},
{
"name": "all-MiniLM-L6-v2-ggml-model-f16",
"type": "embedding",
"prompt_template": "Llama2Chat",
"n_predict": 1024,
"n_gpu_layers": 100,
"ctx_size": 384,
"batch_size": 512,
"temperature": 1.0,
"top_p": 1.0,
"repeat_penalty": 1.1,
"presence_penalty": 0.0,
"frequency_penalty": 0.0
}
],
"qdrant_config": {
"url": "http://localhost:6333",
"collection_name": "default",
"limit": 5,
"score_threshold": 0.4
}
}
Mã trạng thái
Mã phản hồi HTTP | Sự miêu tả | Lý do | Giải pháp |
---|---|---|---|
404 | Không tìm thấy | URL điểm cuối không hợp lệ | Vui lòng kiểm tra URL điểm cuối |
500 | Lỗi máy chủ nội bộ | Không tìm thấy mô hình. | Vui lòng kiểm tra tên model. |
400 | Yêu cầu không hợp lệ |