Saltar al contenido principal

Descripción general

Para LemonData, la configuración más robusta de LlamaIndex es usar integraciones compatibles con OpenAI en lugar de las clases OpenAI integradas. La documentación actual de LlamaIndex recomienda explícitamente OpenAILike para endpoints de terceros compatibles con OpenAI, porque las clases OpenAI integradas infieren metadatos a partir de nombres de modelos oficiales. En otras palabras: aquí debes tratar OpenAILike como la ruta soportada para LemonData, y no las clases OpenAI integradas.

Instalación

pip install llama-index-core \
  llama-index-readers-file \
  llama-index-llms-openai-like \
  llama-index-embeddings-openai-like

Configuración básica

from llama_index.core import Settings
from llama_index.llms.openai_like import OpenAILike
from llama_index.embeddings.openai_like import OpenAILikeEmbedding

llm = OpenAILike(
    model="gpt-5.4",
    api_base="https://api.lemondata.cc/v1",
    api_key="sk-your-lemondata-key",
    is_chat_model=True,
)

embed_model = OpenAILikeEmbedding(
    model_name="text-embedding-3-small",
    api_base="https://api.lemondata.cc/v1",
    api_key="sk-your-lemondata-key",
)

Settings.llm = llm
Settings.embed_model = embed_model

Uso básico

response = llm.complete("Explain LemonData in one sentence.")
print(response.text)

Chat

from llama_index.core.llms import ChatMessage

messages = [
    ChatMessage(role="system", content="You are a helpful assistant."),
    ChatMessage(role="user", content="What is the capital of France?")
]

response = llm.chat(messages)
print(response.message.content)

Streaming

for chunk in llm.stream_complete("Write a short poem about AI."):
    print(chunk.delta, end="", flush=True)

Embeddings

vector = embed_model.get_text_embedding("Hello, world!")
print(vector[:5])

RAG con documentos

from llama_index.core import SimpleDirectoryReader, VectorStoreIndex

documents = SimpleDirectoryReader("./data").load_data()
index = VectorStoreIndex.from_documents(documents)

query_engine = index.as_query_engine()
response = query_engine.query("What is in my documents?")
print(response)

Motor de chat

chat_engine = index.as_chat_engine(chat_mode="condense_question")

response = chat_engine.chat("What is LemonData?")
print(response)

response = chat_engine.chat("How many models does it support?")
print(response)

Uso asíncrono

import asyncio

async def main():
    response = await llm.acomplete("Hello!")
    print(response.text)

asyncio.run(main())

Mejores prácticas

Prefiere llama_index.llms.openai_like.OpenAILike y llama_index.embeddings.openai_like.OpenAILikeEmbedding para LemonData y otros gateways de terceros compatibles con OpenAI.
Pasa api_base="https://api.lemondata.cc/v1" directamente en el código en lugar de depender de nombres antiguos de variables de entorno de OpenAI.
Usa modelos de chat/reasoning para la síntesis y text-embedding-3-small o text-embedding-3-large para la recuperación.