Passer au contenu principal

Vue d’ensemble

Pour LemonData, la configuration LlamaIndex la plus robuste consiste à utiliser des intégrations compatibles OpenAI au lieu des classes OpenAI intégrées. La documentation actuelle de LlamaIndex recommande explicitement OpenAILike pour les endpoints tiers compatibles OpenAI, car les classes OpenAI intégrées déduisent les métadonnées à partir des noms de modèles officiels. Autrement dit, considérez ici OpenAILike comme le chemin pris en charge pour LemonData, et non les classes OpenAI intégrées.

Installation

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

Configuration de base

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

Utilisation de base

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 avec des documents

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)

Moteur 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)

Utilisation asynchrone

import asyncio

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

asyncio.run(main())

Bonnes pratiques

Préférez llama_index.llms.openai_like.OpenAILike et llama_index.embeddings.openai_like.OpenAILikeEmbedding pour LemonData et les autres gateways tiers compatibles OpenAI.
Passez api_base="https://api.lemondata.cc/v1" directement dans le code au lieu de vous appuyer sur les anciens noms de variables d’environnement OpenAI.
Utilisez des modèles de chat/raisonnement pour la synthèse et text-embedding-3-small ou text-embedding-3-large pour la récupération.