# LangChain và LlamaIndex với các model open-weight

> Dùng open-weight LLM trong LangChain và LlamaIndex: ChatOpenAI với một base_url, tool binding, LangChain.js và OpenAILike. Trả tiền theo token bằng crypto.

- URL: https://llmwithcrypto.com/vi/docs/langchain/
- Cập nhật lần cuối: 2026-10-23
- Đơn vị phát hành: LLMwithCrypto (https://llmwithcrypto.com)

LangChain và LlamaIndex đều có sẵn một chat model OpenAI chấp nhận base URL tùy chỉnh. Trỏ nó vào API của chúng tôi và mọi chain, agent và retriever bạn đã xây vẫn chạy, giờ trên DeepSeek, Qwen, gpt-oss và các model open-weight khác.

**Trả lời nhanh — Làm sao để dùng LLMwithCrypto trong LangChain?**

Cài `langchain-openai` và tạo `ChatOpenAI(model="deepseek-v4-pro", base_url="https://llmwithcrypto.com/api/v1", api_key=…)`. **LLMwithCrypto** nói định dạng chat của OpenAI, nên `invoke`, streaming và `bind_tools` hoạt động như với OpenAI, trên các model hỗ trợ tools. LlamaIndex dùng `OpenAILike` với cùng base URL. Được ghi lại ngày 23 tháng 10 năm 2026.

## Dùng class nào

| Thuộc tính | Giá trị |
| --- | --- |
| LangChain (Python) | `ChatOpenAI` từ `langchain-openai`, với `base_url` |
| LangChain.js | `ChatOpenAI` từ `@langchain/openai`, với `configuration.baseURL` |
| LlamaIndex | `OpenAILike` từ `llama-index-llms-openai-like`, với `api_base` và `is_chat_model=True` |
| Model id | Trên [trang models](https://llmwithcrypto.com/vi/models/) |

## Làm thế nào để thiết lập ChatOpenAI?

Truyền base URL và khóa khi bạn tạo model. Đặt `max_tokens` giúp mỗi bước của chain hoặc agent không ghi nhiều hơn mức bạn muốn trả; `usage_metadata` của phản hồi cho thấy số token của mỗi lần gọi.

*LangChain: ChatOpenAI trên DeepSeek V4 Pro*

```python
import os

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="deepseek-v4-pro",
    base_url="https://llmwithcrypto.com/api/v1",
    api_key=os.environ["LLMWITHCRYPTO_API_KEY"],
    max_tokens=300,
    temperature=0.3,
)
reply = llm.invoke("Explain what a vector database is in two sentences.")
print(reply.content)
print(reply.usage_metadata)

```

## Tools và agent có hoạt động không?

Có, trên các model hỗ trợ tool calling. Streaming hoạt động trên mọi model; tool calling và JSON output tuân theo những gì từng model tự hỗ trợ. `bind_tools` gửi các tool của bạn theo định dạng OpenAI; hãy kiểm tra schema của bạn trên model bạn chọn trước khi phụ thuộc vào nó. Agent LangGraph xây trên `ChatOpenAI` cũng hoạt động theo cách tương tự.

*LangChain: một tool gắn với gpt-oss-120b*

```python
import os

from langchain_core.tools import tool
from langchain_openai import ChatOpenAI


@tool
def convert_currency(amount: float, rate: float) -> float:
    """Convert an amount with an exchange rate."""
    return round(amount * rate, 2)


llm = ChatOpenAI(
    model="gpt-oss-120b",
    base_url="https://llmwithcrypto.com/api/v1",
    api_key=os.environ["LLMWITHCRYPTO_API_KEY"],
)
llm_with_tools = llm.bind_tools([convert_currency])
msg = llm_with_tools.invoke("How much is 250 at a rate of 0.92?")
for call in msg.tool_calls:
    print(call["name"], call["args"], "->", convert_currency.invoke(call["args"]))

```

## Còn từ JavaScript thì sao?

LangChain.js nhận base URL trong `configuration`, rồi chuyển nó cho OpenAI client bên dưới.

*LangChain.js: ChatOpenAI với baseURL*

```javascript
import { ChatOpenAI } from '@langchain/openai';

const llm = new ChatOpenAI({
  model: 'qwen3-235b-a22b-instruct-2507',
  apiKey: process.env.LLMWITHCRYPTO_API_KEY,
  configuration: { baseURL: 'https://llmwithcrypto.com/api/v1' },
  maxTokens: 300,
});
const reply = await llm.invoke('Give me a three-step plan to learn SQL.');
console.log(reply.content);

```

## Làm thế nào để dùng nó trong LlamaIndex?

Dùng `OpenAILike`, hàm này không kiểm tra tên model với danh sách của OpenAI. Đặt `is_chat_model=True` để nó gửi chat messages, và cho nó biết context window của model để LlamaIndex tính kích thước prompt: tính đến ngày 23 tháng 10 năm 2026, DeepSeek V4.1 Flash đọc tối đa 1M token, ví dụ cố ý đặt cửa sổ nhỏ hơn để giữ prompt ngắn.

*LlamaIndex: OpenAILike trên DeepSeek V4.1 Flash*

```python
import os

from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    model="deepseek-v4.1-flash",
    api_base="https://llmwithcrypto.com/api/v1",
    api_key=os.environ["LLMWITHCRYPTO_API_KEY"],
    is_chat_model=True,
    context_window=131072,
    max_tokens=300,
)
print(llm.complete("Name three uses of a knowledge graph."))

```

## Làm thế nào để kiểm soát chi phí của agent?

Một agent gọi model nhiều lần cho mỗi tác vụ: một lần để lập kế hoạch, một lần cho mỗi kết quả tool, một lần để trả lời. Mỗi lần gọi gửi lại toàn bộ cuộc hội thoại, nên phần input tăng ở mỗi bước.

- **Giới hạn mỗi lần gọi** bằng `max_tokens`, và giới hạn cả lần chạy bằng số bước tối đa.
- **Dùng model nhỏ ở nơi nó đủ.** Tính đến ngày 23 tháng 10 năm 2026, gpt-oss-20b có giá $0.033 mỗi triệu token input so với $1.254 của DeepSeek V4 Pro: chuyển các bước đơn giản sang model nhỏ và giữ model lớn cho câu trả lời cuối.
- **Cắt bớt lịch sử** trong các hội thoại dài, hoặc tóm tắt các lượt cũ.
- **Theo dõi credit** bằng `GET https://llmwithcrypto.com/api/v1/credits` trước những lần chạy lớn.

Dashboard liệt kê mọi lần gọi kèm token và chi phí, giúp nhanh chóng thấy bước nào của chain là bước tốn kém.

## Frameworks: các câu hỏi thường gặp

### Tôi có thể kết hợp nhiều model trong một chain không?

Có: tạo một `ChatOpenAI` cho mỗi model, ví dụ một model rẻ để routing và một model lớn cho câu trả lời cuối. Tất cả đều dùng chung một số dư credit.

### Embeddings có hoạt động không?

Không. API chỉ phục vụ chat completions; hãy dùng model embedding hiện có của bạn song song với nó.

### Tôi trả tiền cho một lần chạy agent như thế nào?

Mọi lần gọi model của lần chạy đó, tính theo token. Bạn trả tiền theo token từ số dư của mình: token đầu vào và đầu ra được đếm bằng tokenizer của chính model và tính theo giá của model đó trên 1M token. Một lần gọi kết thúc bằng lỗi thì không mất phí. Giá theo từng model có trên [trang pricing](https://llmwithcrypto.com/vi/pricing/).

---

LLMwithCrypto: LLMwithCrypto là API LLM tương thích OpenAI cho các mô hình open-weight — DeepSeek V4 Pro, DeepSeek V4.1 Flash, DeepSeek R1, Qwen3.5 397B A17B, Qwen3 235B A22B Instruct, gpt-oss-120b, gpt-oss-20b, GLM-4.7, Llama 3.3 70B Instruct, Gemma 4 31B, Mistral Large 3, Mistral Small 4 — thanh toán theo token từ số dư crypto trả trước, thấp hơn 5% so với giá trung vị của các nhà cung cấp công khai. Không cần KYC: không ID, không selfie, không giấy tờ. Prompt và output không được lưu trữ.
