Thiết lập Custom API ai-hedge-fund

Updated 2026-09-05

Chọn provider trước khi cấu hình endpoint. Theo factory model và registry hiện tại, rồi xác thực dữ liệu, đầu ra agent và đánh giá như các giai đoạn riêng.

Xác định đường ứng dụng hiện tại

Với ứng dụng ai-hedge-fund hiện tại, hãy xác nhận provider registry của model trước khi đặt OPENAI_API_BASE. Ở revision fc1bf250, factory client nằm trong hedge_fund/llm/client.py và đọc registry bên cạnh. Tutorial cũ chỉ nhắc src/llm/models.py mô tả đường ứng dụng khác. Pin checkout và dùng entrypoint import factory hiện tại. Bắt đầu bằng preflight provider bên dưới, rồi chạy client dự án trước khi thu thập dữ liệu tài chính cho một chu kỳ nghiên cứu hoàn chỉnh.

Giải quyết provider trước khi đặt base URL

make_llm chọn provider từ mã định danh model đã chọn. Nhánh OpenAI truyền OPENAI_API_BASE vào ChatOpenAI và đọc API key tương ứng. Mã định danh không biết sẽ fallback sang transport Anthropic trong nguồn đã rà soát, nên chỉ export base URL OpenAI là chưa đủ. Trước tiên xác nhận model ID endpoint chính xác được đăng ký dưới OpenAI. Ở đây OpenAI xác định adapter transport; nó không chứng nhận vendor model nền. Đừng đổi entry registry toàn cục nếu chưa hiểu mọi workflow dùng nó.

Cài đặtMục đíchKiểm tra
HEDGE_FUND_LLM_MODELChọn model ID chính xácRegistry giải quyết đúng provider dự kiến
OPENAI_API_BASEOverride endpoint transport OpenAIÁp dụng cho nhánh OpenAI
OPENAI_API_KEYXác thực transport đóClient process có thể truy cập
api_models.jsonÁnh xạ model ID tới providerĐường hiện tại là hedge_fund/llm/

Kiểm tra cấu hình mà không tạo request

Ví dụ dưới đây thất bại trước khi dựng client nếu registry local chọn transport khác. Đặt RESEARCH_MODEL_ID thành ID catalog mà bạn đã rà soát việc đăng ký trong ứng dụng. Nếu thiếu, cố ý thêm một dòng registry local bằng các trường display_name, model_name và provider hiện có, giữ các entry không liên quan. Placeholder không phải khẳng định model được hỗ trợ. Cung cấp key qua môi trường hoặc secret store. Preflight chỉ kiểm tra lựa chọn; nó không xác lập truy cập mạng, quyền tài khoản, output có cấu trúc hay chất lượng nghiên cứu.

import os
from hedge_fund.llm.registry import provider_for

model = os.environ["RESEARCH_MODEL_ID"]
if provider_for(model) != "OpenAI":
    raise RuntimeError("MODEL_TRANSPORT_MISMATCH")
os.environ["HEDGE_FUND_LLM_MODEL"] = model
os.environ["OPENAI_API_BASE"] = "https://api.apisrouter.com/v1"
assert os.environ["OPENAI_API_KEY"]
# Selection check only; no make_llm() or model request.

Truy dấu route model được đề xuất

Route model bắt đầu sau khi giải quyết registry. Ứng dụng vẫn cần client dữ liệu tài chính, định nghĩa vũ trụ và ngày nghiên cứu rõ. Key gateway không phải credential Financial Datasets hay quyền phân phối lại dữ liệu thị trường. Xác thực ID công ty, tiền tệ và ngữ nghĩa timestamp độc lập. Với công ty niêm yết chéo, nêu phân tích nói về tổ chức phát hành, loại cổ phần địa phương hay chứng chỉ lưu ký. Giữ bằng chứng request model riêng với bằng chứng provider-data để chuỗi tài chính thiếu không bị chẩn đoán nhầm là lỗi LLM.

Route transport OpenAI của ai-hedge-fund sau khi chọn registry model.ai-hedge-fund routes through Provider registry OpenAI + OPENAI_API_BASE to the APIsRouter gateway (api.apisrouter.com/v1), which fans out to: Registered research model.ai-hedge-fundviaProvider registryOpenAI +OPENAI_API_BASEAPIsRouterapi.apisrouter.com/v1Registered research model
Route client có tài liệu sau khi chọn provider. Dữ liệu tài chính dùng client riêng.

Xác thực quyết định đã parse như dữ liệu

Factory đã rà soát bọc client provider sau phương thức complete(system, user). Văn bản response không tự động là kết quả nghiên cứu hợp lệ. Kiểm tra lớp agent parse JSON, xử lý quyền từ chối và kết hợp output. Response có thể không rỗng nhưng sai định dạng, mâu thuẫn nội bộ hoặc không được input hỗ trợ. Giữ response thô đã làm sạch và object đã parse trong một request record. Xác thực trường dự kiến và trạng thái được phép thay vì khớp câu trấn an. Coi kết quả thiếu hoặc bị từ chối là không khả dụng, không phải tín hiệu trung lập âm thầm đi vào tổng hợp danh mục.

import os
from hedge_fund.llm.client import make_llm, extract_json
from hedge_fund.llm.registry import provider_for

model = os.environ["HEDGE_FUND_LLM_MODEL"]
assert provider_for(model) == "OpenAI"
client = make_llm(model=model)
result = extract_json(client.complete(
    "Return a JSON object with a boolean ready field.",
    "Set ready to true.",
))
assert result.get("ready") is True
# This request tests the client and parser, not financial research.

Làm chu kỳ nghiên cứu đầu tiên nhỏ và có thể rà soát

Sau test client được ủy quyền, chọn một tổ chức phát hành và câu hỏi có giới hạn với bằng chứng được cấp phép hoặc công khai. Xác nhận mỗi tool bắt buộc trả đúng công ty và kỳ, rồi so lời giải thích tạo với tài liệu gốc. Giữ lần chạy đầu chỉ đọc và có bước rà soát con người rõ. Đánh giá output có trích dẫn bằng chứng ủng hộ và phản đối, ghi dữ liệu thiếu và phân biệt giả định với tính toán không. Tên vai trò phân tích hay phong cách đầu tư không phải bằng chứng suy luận tạo tái tạo phương pháp hoặc phán đoán người thật.

Giữ bằng chứng backtest độc lập

Ứng dụng có thể hoàn tất chu kỳ nghiên cứu trong khi đánh giá lịch sử vẫn không hợp lệ. Kiểm tra timestamp công bố, dữ liệu đã sửa, lựa chọn công ty còn tồn tại và việc dùng tin hiện tại trong prompt lịch sử. Tách kỳ phát triển, xác thực và holdout trước khi lặp prompt hoặc cài đặt chiến lược. Lưu benchmark, giả định chi phí giao dịch và mọi cấu hình đã thử. Liên tục chọn prompt theo cùng kỳ test biến kỳ đó thành dữ liệu phát triển. Báo cáo đánh giá chưa hoàn tất một cách trung thực thay vì điền bảng kết quả bằng lợi nhuận minh họa có thể bị nhầm là đo lường.

Kiểm soát lỗi và tổng chi phí nghiên cứu

Đếm cuộc gọi model, lần thử, lỗi parse, phí dữ liệu tài chính và tính local ở cấp job. Timeout endpoint có thể để chi phí chưa biết cho tới khi đối soát usage. Thử lại lỗi transport tạm thời trong ngân sách cố định; không thử lại lỗi xác thực hoặc chọn provider mà không đổi nguyên nhân. Giữ giai đoạn thất bại và lỗi đã làm sạch để rà soát. Response hello gateway chung có thể giúp cô lập transport, nhưng chỉ test client dự án mới kiểm tra hành vi adapter. So sánh chi phí hữu ích giữ gói nguồn, vai trò và tiêu chí chấp nhận output cố định giữa các model.

Bằng chứng và giới hạn

Factory và registry hiện tại được rà soát tại fc1bf250 ngày 5 tháng 9 năm 2026. Ví dụ là template có nguồn; chưa thực hiện request APIsRouter hay chu kỳ nghiên cứu đầy đủ cho hướng dẫn. Cuộc gọi trước qua gateway khác không xác lập tích hợp này. Giữ kết quả client, data-tool và artifact hoàn chỉnh riêng khi xác thực môi trường.

Câu hỏi thường gặp

Vì sao ID tùy chỉnh yêu cầu key Anthropic?

Trong factory đã rà soát, model ID chưa đăng ký sẽ fallback sang Anthropic. Kiểm tra provider_for(model) và registry hedge_fund/llm/api_models.json hiện tại trước khi dựng client.

OPENAI_API_BASE có định tuyến lại mọi provider không?

Không. Nó được đọc trong nhánh client OpenAI. Provider khác trong registry dựng client riêng và có thể dùng cài đặt khác.

Trường registry nào liên quan?

Registry đã rà soát đọc display_name, model_name và provider. Giữ ID endpoint chính xác và chọn transport có chủ ý.

Model trong menu ứng dụng có hàm ý endpoint truy cập được không?

Không. Kiểm tra ID chính xác và quyền tài khoản với endpoint đã chọn. Registry ứng dụng quyết định chọn client, không phải catalog gateway.

Nên kiểm tra gì sau khi client trả JSON?

Xác thực tool dữ liệu tài chính, schema output agent, hành vi từ chối và artifact nghiên cứu cuối có liên kết bằng chứng bằng một tác vụ có giới hạn.

Có thể dùng output để tự động đặt lệnh không?

Hướng dẫn này bao phủ cấu hình nghiên cứu. Ủy quyền lệnh, giới hạn, đối soát và rà soát vận hành thuộc hệ thống thực thi được xác thực riêng.