Ana içeriğe geç
Sürüm: 1.0.0

API Referansı

Giriş

Her GaiaNet düğümü OpenAI uyumlu bir API sunucusudur. Uygulamanızı GaiaNet node API'sini temel alarak oluşturabilirsiniz. Sen OpenAI API yapılandırmasını diğer AI aracı çerçevelerinde GaiaNet 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.

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' \
-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' \
-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

SahaTipGerekliAçıklamaVarsayılanÖrnek
mesajlarListeGerekliGö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" gereklidir
2. 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!"}]
modelDizeGerekliKullandığınız sohbet modeliN/ALlama-3-8B-262k-Q5_K_M
top_pSayıOpsiyonelSı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.10 ile 1 arasında bir sayı.
sıcaklıkSayıOpsiyonel0,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.10 ile 2 arasında bir sayı.
presence_penaltySayıOpsiyonelPozitif 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.0Sayı -2,0 ile 2,0 arasındadır.
akışbooleanOpsiyonelCevabı akış çıktısı haline getirinYANLIŞ"stream":true
frequency_penaltySayıOpsiyonelPozitif 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.0Sayı -2,0 ile 2,0 arasındadır.

Yanıt gövdesi

SahaTipAkışlı veya akışsızAçıklamaVarsayılanÖrnek
idDizeHer ikisi deSohbet tamamlama için benzersiz bir tanımlayıcı.Rastgele oluşturulurchatcmpl-73a1f57d-185e-42c2-b8a6-ba0bae58f3b4
nesneDizeHer ikisi deNesne 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çimlerdiziHer ikisi deSohbet tamamlama seçeneklerinin bir listesi."choices":[{"index":0,"message":{"role":"assistant","content":"Paris."},"finish_reason":"stop"}]
yaratıldıtamsayıHer ikisi deSohbet tamamlamanın oluşturulduğu Unix zaman damgası (saniye cinsinden).N/A1716380086
modelDizeHer ikisi deSohbet tamamlama için kullanılan model.Kullandığınız modele göre değişir.Llama-3-8B-Instruct-Q5_K_M
kullanımnesneHer ikisi decompletion_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' \
-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' \
-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 koduAçıklamaSebepÇözümler
404BulunamadıUç nokta URL'si geçersizLütfen uç nokta URL'sini kontrol edin
500Dahili Sunucu HatasıModel bulunamadı.Lütfen model adını kontrol edin.
400Kötü istek