İçeriğe atla
Tüm belgeler

Kod

LlamaIndex

LlamaIndex’in OpenAILike sınıfını temel URL’n, anahtarın ve bir model kimliğiyle kullan. Kendi kendine bilemeyeceği dört bayrağı ayarla; gerisi LlamaIndex’in üstünde çalışır.

29 Ekim 2026 tarihinde kontrol edildi

Kurulum ve bağlantı

Shell
pip install llama-index-core llama-index-llms-openai-like
export NOKEEP_API_KEY="sk-nokeep-test"  # your own key once it connects
llm.py
import os
from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    model="deepseek-v4.1-flash-uncensored",
    api_base="https://nokeep.ai/v1",
    api_key=os.environ["NOKEEP_API_KEY"],
    is_chat_model=True,
    is_function_calling_model=True,
    context_window=1000000,
    temperature=0.8,
)

print(llm.complete("Name three good names for a tavern.").text)
  • is_chat_model=True sohbet tamamlamalarını kullanır. Bu olmadan LlamaIndex, nokeep’te bulunmayan /v1/completions adresini çağırır.
  • is_function_calling_model=True, ajanların ve chat_with_tools çağrısının araç göndermesini sağlar.
  • context_window varsayılanı 3.900 token’dır; bu yüzden LlamaIndex uzun sohbetleri ve alınan metinleri sığacak şekilde kırpar. Modelin gerçek bağlamını yaz: DeepSeek için 1.000.000, GLM için 128.000.
  • temperature varsayılanı 0,1’dir; bu da kurguyu düz ve tekrarlı yapar. Kendi değerini yaz.

Sohbet ve akış

Python
from llama_index.core.llms import ChatMessage

messages = [
    ChatMessage(role="system", content="You are a blunt editor."),
    ChatMessage(role="user", content="Cut this opening line to ten words: ..."),
]
print(llm.chat(messages).message.content)

for part in llm.stream_chat(messages):
    print(part.delta, end="", flush=True)

Araçlar ve ajanlar

Python
import asyncio
from llama_index.core.agent.workflow import FunctionAgent

def get_weather(city: str) -> str:
    """Get the weather in a city."""
    return f"18°C and clear in {city}"

agent = FunctionAgent(
    tools=[get_weather],
    llm=llm,
    system_prompt="You answer questions about the weather.",
)

async def main():
    print(await agent.run("What's the weather in Lisbon?"))

asyncio.run(main())

Döngüsüz, araçlı tek bir çağrı için llm.chat_with_tools([tool], user_msg=...) kullan ve çağrıları llm.get_tool_calls_from_response(...) ile oku. Bkz. Araç çağrıları.

Düşünme ve diğer alanlar

Python
import os
from llama_index.llms.openai_like import OpenAILike

thinker = OpenAILike(
    model="deepseek-v4.1-flash-uncensored",
    api_base="https://nokeep.ai/v1",
    api_key=os.environ["NOKEEP_API_KEY"],
    is_chat_model=True,
    context_window=1000000,
    max_tokens=4000,
    additional_kwargs={"reasoning_effort": "high", "min_p": 0.05},
)

additional_kwargs her isteğe olduğu gibi girer. Düşünme max_tokens içinde sayılır; bu yüzden ona yer bırak. Bkz. Düşünme.

Dikkat edilecekler

  • `reasoning_effort` yalnızca modelin kendi değerlerini kabul eder. deepseek-v4.1-flash-uncensored none, low, high, max alır; glm-5.3-flash-uncensored low, high alır. Diğer uygulamaların minimal, medium ve xhigh değerleri modelin en yakın düzeyinde çalışır (medium high olarak, xhigh modelde varsa max olarak); başka her değer 400 invalid_reasoning_effort hatası verir. Bkz. Düşünme.
  • GLM araçlarını kendi seçer. glm-5.3-flash-uncensored yalnızca auto ya da none tool_choice değeri kabul eder. Bir aracı zorlamak (required ya da bir işlev adı vermek) 400 unsupported_tool_choice hatası verir. Bir araç zorlamanız gerektiğinde DeepSeek kullanın.
  • Bir modelin alamayacağı alanlar reddedilmez, atılır. Çağrı yine yanıt verir ve x-nokeep-ignored yanıt başlığı, dışarıda bırakılanları söyler. GLM yalnızca tools, tool_choice ve reasoning_effort alanlarını tutar; bu yüzden temperature ve response_format atılır. Bkz. her modelin hangi alanları aldığı.
  • `n` değeri 1 olmalıdır. Birden çok yanıt istiyorsan birden çok çağrı yap.
  • Yalnızca sohbet tamamlamaları. /v1/responses ve /v1/embeddings yoktur; bunlardan birini varsayılan alan bir çerçeveyi sohbet tamamlamalarına yönlendirmen gerekir, gömmeler için başka bir sağlayıcı gerekir.

Bir RAG uygulaması için Settings.llm = llm yaz ve gömme modelini olduğu yerde bırak: nokeep sohbet modelini çalıştırır, gömmeleri değil. glm-5.3-flash-uncensored ile LlamaIndex’in her çağrıda gönderdiği temperature atılır ve x-nokeep-ignored içinde adı yazılır.

Sorular

Neden OpenAI değil de OpenAILike?

LlamaIndex’in OpenAI sınıfı model adını kendi listesiyle karşılaştırır ve tanımadığı adları reddeder. OpenAILike her adı ve her temel URL’yi kabul eder.

LlamaIndex belgelerimi nokeep üzerinde dizinler mi?

Hayır. Dizinleme ve gömmeler, nerede kurduysan orada çalışır. nokeep’e yalnızca sohbet çağrıları ulaşır ve nokeep her biri için yalnızca token sayılarını tutar.