Chuyển đến nội dung chính
Phiên bản: 1.0.0

Tài liệu tham khảo API

Giới thiệu

Mỗi nút GaiaNet 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 GaiaNet. Bạn cũng có thể thay thế cấu hình API OpenAI bằng API nút GaiaNet 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.

Đ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' \
-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' \
-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ườngKiểuBắt buộcSự miêu tảMặc địnhVí dụ
ThưDanh sáchBắt buộcDanh 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ộc
2. 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ẫuXâuBắt buộcMô hình trò chuyện bạn đã sử dụngN/ALlama-3-8B-262K-Q5_K_M
top_pSốTùy chọnMộ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.1Số từ 0 đến 1.
nhiệt độSốTùy chọnCá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.1Số từ 0 đến 2.
presence_penaltySốTùy chọnCá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.0Số từ -2.0 đến 2.0.
dòngBooleanTùy chọnTạo đầu ra phát trực tuyến câu trả lờiSAI"luồng":true
frequency_penaltySốTùy chọnCá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.0Số từ -2.0 đến 2.0.

Cơ thể phản hồi

TrườngKiểuPhát trực tuyến hoặc không phát trực tuyếnSự miêu tảMặc địnhVí dụ
IdxâuCả haiMã định danh duy nhất để hoàn tất cuộc trò chuyện.Được tạo ngẫu nhiênCHATCMPL-73A1F57D-185E-42C2-B8A6-Ba0BAE58F3B4
đối tượngxâuCả haiLoại đối tượngchat.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ọnmảngCả haiDanh 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ạosố nguyênCả haiDấu thời gian Unix (tính bằng giây) khi hoàn tất trò chuyện được tạo.N/A1716380086
mẫuxâuCả haiMô 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ượngCả haiThố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' \
-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' \
-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 HTTPSự miêu tảLý doGiải pháp
404Không tìm thấyURL điểm cuối không hợp lệVui lòng kiểm tra URL điểm cuối
500Lỗ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.
400Yêu cầu không hợp lệ