API Referansı
Giriş
Her Gaia düğümü OpenAI uyumlu bir API sunucusudur. Uygulamanızı Gaia node API'sini temel alarak oluşturabilirsiniz. Sen OpenAI API yapılandırmasını diğer AI aracı çerçevelerindeki Gaia düğüm API'si ile de değiştirebilir.
Tüm API isteklerini göndermek için temel URL şöyledir https://node_id.gaianet.network/v1
.
Değiştirdiğinizden emin olun YOUR_API_KEY_GOES_HERE
seninle kendi API anahtarınız. Kendi API anahtarınızı almak için şunları yapın Bu öğretici.
Uç Noktalar
Sohbet
Bu sohbet/tamamlamalar
uç noktası, sistem istemine ve kullanıcı sorgusuna dayalı bir LLM yanıtı döndürür.
Akış dışı
Varsayılan olarak, API HTTP yanıtında tam bir yanıtla yanıt verir.
İstek
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"}'
Cevap ver:
{"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}}%
akış
Ekle "stream":true
LLM yanıtını oluştururken API'nin kısmi yanıtları geri göndermesini sağlamak için isteğinizde.
İstek:
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}'
Cevap ver:
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]
İstek gövdesi
Saha | Tip | Gerekli | Açıklama | Varsayılan | Örnek |
---|---|---|---|---|---|
mesajlar | Liste | Gerekli | Görüşme için mesajların bir listesi. 1 . Sistem mesajı (kullandığınız büyük dil moduna bağlıdır) * İçerik sistem mesajlarının gerekli olması * "rol": "sistem" gereklidir2. Kullanıcı mesajı (gerekli) * İçerik gerekli. * "rol": "kullanıcı" gereklidir | N/A | "messages": ["role": "system","content": "You are a helpful assistant."},{"role": "user", "content": "Hello!"}] |
model | Dize | Gerekli | Kullandığınız sohbet modeli | N/A | Llama-3-8B-262k-Q5_K_M |
top_p | Sayı | Opsiyonel | Sıcaklık ile örneklemeye bir alternatif. 0,8 gibi daha yüksek değerler çıktıyı daha rastgele hale getirirken, 0,2 gibi daha düşük değerler daha odaklı ve deterministik hale getirecektir. | 1 | 0 ile 1 arasında bir sayı. |
sıcaklık | Sayı | Opsiyonel | 0,8 gibi daha yüksek değerler çıktıyı daha rastgele hale getirirken, 0,2 gibi daha düşük değerler daha odaklı ve deterministik hale getirecektir. | 1 | 0 ile 2 arasında bir sayı. |
presence_penalty | Sayı | Opsiyonel | Pozitif değerler, yeni belirteçleri o ana kadar metinde görünüp görünmediklerine göre cezalandırır ve modelin yeni konular hakkında konuşma olasılığını artırır. | 0 | Sayı -2,0 ile 2,0 arasındadır. |
akış | boolean | Opsiyonel | Cevabı akış çıktısı haline getirin | YANLIŞ | "stream":true |
frequency_penalty | Sayı | Opsiyonel | Pozitif değerler, yeni belirteçleri o ana kadar metindeki mevcut sıklıklarına göre cezalandırarak modelin aynı satırı kelimesi kelimesine tekrarlama olasılığını azaltır. | 0 | Sayı -2,0 ile 2,0 arasındadır. |
Yanıt gövdesi
Saha | Tip | Akışlı veya akışsız | Açıklama | Varsayılan | Örnek |
---|---|---|---|---|---|
id | Dize | Her ikisi de | Sohbet tamamlama için benzersiz bir tanımlayıcı. | Rastgele oluşturulur | chatcmpl-73a1f57d-185e-42c2-b8a6-ba0bae58f3b4 |
nesne | Dize | Her ikisi de | Nesne türü | sohbet.tamamlama.yığın akış modunda.chat.completion akışsız modda. | sohbet.tamamlama.yığın akış modunda.chat.completion akışsız modda. |
seçimler | dizi | Her ikisi de | Sohbet tamamlama seçeneklerinin bir listesi. | "choices":[{"index":0,"message":{"role":"assistant","content":"Paris."},"finish_reason":"stop"}] | |
yaratıldı | tamsayı | Her ikisi de | Sohbet tamamlamanın oluşturulduğu Unix zaman damgası (saniye cinsinden). | N/A | 1716380086 |
model | Dize | Her ikisi de | Sohbet tamamlama için kullanılan model. | Kullandığınız modele göre değişir. | Llama-3-8B-Instruct-Q5_K_M |
kullanım | nesne | Her ikisi de | completion_tokens, prompt_tokens ve total_tokens dahil olmak üzere tamamlama isteği için kullanım istatistikleri. | N/A | "usage":{"prompt_tokens":61,"completion_tokens":4,"total_tokens":65} |
Yerleştirme
Bu katıştırmalar
uç noktası, kullanıcı sorguları veya dosya yığınları için katıştırmaları hesaplar.
İstek
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."]}'
Cevap ver:
{
"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
}
}
Geri al
Bu geri almak
uç noktası, kullanıcının sorgusuna bağlı olarak düğümün vektör koleksiyonundan metin alabilir.
İstek:
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"}'
Cevap ver:
{
"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
}
Modeli alın
Bu modeller
uç noktası, düğümde bulunan sohbet ve gömme modellerini sağlar.
İstek:
curl -X POST https://node_id.gaianet.network/v1/models
Cevap ver:
{"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"}]}%
Düğüm bilgisini alın
Bu bilgi
uç noktası düğüm hakkında ayrıntılı bilgi sağlar.
İstek:
curl -X POST https://node_id.gaianet.network/v1/info
Cevap ver:
{
"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
}
}
Durum Kodları
HTTP yanıt kodu | Açıklama | Sebep | Çözümler |
---|---|---|---|
404 | Bulunamadı | Uç nokta URL'si geçersiz | Lütfen uç nokta URL'sini kontrol edin |
500 | Dahili Sunucu Hatası | Model bulunamadı. | Lütfen model adını kontrol edin. |
400 | Kötü istek |