รัน pipeline agent ของ FinGPT บน custom OpenAI-compatible endpoint
Updated 2026-07-30
pipeline วิเคราะห์แบบ multi-agent ของ FinGPT ตั้งค่า LLM ของมันผ่าน dict AG2 LLMConfig ที่รับ api_type "openai" และ base_url ตั้ง base_url เป็น https://api.apisrouter.com/v1 ส่ง key เดียว แล้ว agent นักวิจัย, sentiment และที่ปรึกษาก็รันบน model id ใดก็ได้ในแคตตาล็อก
คำตอบสั้น ๆ: base_url ใน dict AG2 LLMConfig
pipeline วิเคราะห์การเงินแบบ multi-agent ของ FinGPT (fingpt/ag2_financial_analysis_pipeline.ipynb ใน repo ต้นทาง) สร้างการตั้งค่า LLM เป็น dict AG2 LLMConfig ด้วยสี่ key: model, api_key, api_type และ base_url notebook ต้นทางเองก็ชี้ base_url ไปที่ endpoint router แบบ OpenAI-compatible แทนที่จะเป็น api.openai.com ดังนั้นการ route ผ่าน gateway คือรูปแบบที่มีเอกสารระบุตรงนี้ ไม่ใช่ทางแก้ขัด หากต้องการรัน pipeline ผ่าน APIsRouter ให้ตั้ง api_type เป็น "openai" ตั้ง base_url เป็น https://api.apisrouter.com/v1 ใส่ key ของ gateway ใน api_key แล้วตั้ง model เป็น id ในแคตตาล็อกใดก็ได้ AssistantAgent ทุกตัวใน notebook รับ object llm_config เดียวกัน ดังนั้น dict เดียวย้ายทีม agent ทั้งหมด
from autogen import LLMConfig # ag2[openai]>=0.11.4
llm_config = LLMConfig({
"model": "claude-sonnet-4-6",
"api_key": os.environ["APISROUTER_API_KEY"],
"api_type": "openai",
"base_url": "https://api.apisrouter.com/v1",
})FinGPT เรียก LLM API จริง ๆ ตรงไหน
FinGPT (AI4Finance-Foundation บน GitHub มีดาวประมาณ 21K) คือสองสิ่งภายใต้ชื่อเดียว และการรู้ว่าคุณกำลังรันครึ่งไหนตัดสินว่า custom endpoint สำคัญหรือไม่เลย ครึ่งแรกคือ open weight ที่ fine-tune แล้ว: notebook เทรน LoRA สำหรับ Llama และ ChatGLM ที่ทำให้โปรเจกต์นี้เป็นที่รู้จัก สิ่งเหล่านั้นรันในเครื่องหรือบน GPU เช่ามาผ่าน Hugging Face transformers ไม่มีการเรียก chat-completions และไม่มี base URL ใดใช้กับมันได้ ครึ่งที่สองคือ application pipeline และนี่คือที่ที่พื้นผิว OpenAI-compatible อยู่ pipeline วิเคราะห์แบบ multi-agent ของ AG2 เดินสาย AssistantAgent สามตัว (นักวิจัยข่าว, นักวิเคราะห์ sentiment และที่ปรึกษาการลงทุน) เข้ากับ LLMConfig เดียว เสริมด้วยการเรียก tool ของ yfinance และตัวจัดหมวด sentiment FinBERT ในเครื่อง แล้วให้พวกมันส่งการวิเคราะห์หุ้นระหว่างบทบาทกัน pipeline วิเคราะห์รายงานการเงิน (fingpt/FinGPT_FinancialReportAnalysis) ขับเคลื่อน ChatOpenAI ของ LangChain กับ SEC filing ที่ดึงผ่าน sec-api และ Financial Modeling Prep pipeline ทั้งสองส่ง request /v1/chat/completions มาตรฐาน ทั้งสองเปิด endpoint เป็นพารามิเตอร์ และทั้งสองส่งฟิลด์ model ผ่านเป็นสตริงธรรมดา ซึ่งเป็นสิ่งที่ทำให้ id ของ Claude หรือ DeepSeek ขี่ไปกับ api_type "openai" ได้เมื่อ endpoint หลัง base_url เสิร์ฟมัน
ตั้งค่าแบบเต็ม: pipeline ของ AG2 และ pipeline วิเคราะห์รายงาน
pipeline ของ AG2 คือการเชื่อมต่อที่สะอาดที่สุด แทนที่ค่า LLMConfig ของ notebook ด้วย endpoint ของ gateway และ id โมเดลที่คุณต้องการ แล้ว agent ทั้งสามตัวพร้อม loop การเรียก tool ของมันจะรันโดยไม่เปลี่ยนแปลง ฝั่งข้อมูลการเงิน (ราคาจาก yfinance, การให้คะแนน sentiment ของ FinBERT) เป็นแบบ local และไม่ต้องใช้ API key ดังนั้น LLM endpoint เป็นสิ่งเดียวที่เป็น dependency ภายนอกที่คุณกำลังย้าย pipeline วิเคราะห์รายงานใช้ ChatOpenAI ของ LangChain ซึ่งรับ api_key และ base_url เป็น argument ของ constructor notebook ต้นทางแสดงคู่นี้เป๊ะ ๆ ตอนที่มันแสดงวิธีสลับไปใช้ OpenAI-compatible server ในเครื่อง ชี้ argument สองตัวเดียวกันไปที่ gateway แทน สังเกตว่า notebook นี้ยังต้องการ credential ของ SEC และ Financial Modeling Prep สำหรับการดึงข้อมูลของมันด้วย นั่นคือ key ข้อมูลตลาดที่ไม่เกี่ยวกับ LLM endpoint และคงอยู่เหมือนเดิม
import os
from autogen import AssistantAgent, LLMConfig
llm_config = LLMConfig({
"model": "claude-sonnet-4-6", # any catalog id
"api_key": os.environ["APISROUTER_API_KEY"],
"api_type": "openai",
"base_url": "https://api.apisrouter.com/v1",
})
researcher = AssistantAgent(name="News_Researcher", llm_config=llm_config)
analyst = AssistantAgent(name="Sentiment_Analyst", llm_config=llm_config)
advisor = AssistantAgent(name="Investment_Advisor", llm_config=llm_config)เลือกโมเดลสำหรับ agent วิเคราะห์การเงิน
เพราะผู้สมัครแต่ละคนคือสตริงโมเดลเดียวกับ endpoint เดียวกัน loop ที่ใช้ได้จริงคือ fix ticker และวันที่ของคุณ รัน pipeline หนึ่งครั้งต่อ id ผู้สมัคร แล้ว diff output ของที่ปรึกษา usage log ต่อ key ตั้งราคาการรันของผู้สมัครแต่ละคนให้คุณ ซึ่งยุติข้อโต้แย้งเรื่องคุณภาพต่อ token ด้วยตัวเลขแทนสัญชาตญาณ
- บทบาทที่ปรึกษาคือคอขวดของ reasoning มันสังเคราะห์ผลจากนักวิจัย คะแนน sentiment และภาพความเสี่ยงให้เป็น outlook และโมเดล reasoning แบบ frontier (claude-opus-4-7, gpt-5.5) คือจุดที่การสังเคราะห์นั้นเลิกเป็นเรื่องทั่วไป
- บทบาทนักวิจัยและนักวิเคราะห์คือบทบาทปริมาณ: อ่านหัวข้อข่าว, จัดโครงสร้าง output ของ tool, ให้คะแนนร่าง claude-sonnet-4-6 หรือ deepseek-v4-pro รักษาความคมชัดโดยไม่ต้องจ่ายราคาระดับ frontier ในทุก turn กลาง
- การวิเคราะห์รายงานคือ workload แบบ context ยาว ส่วน 10-K บวก context เป้าหมายราคาคือ prompt ขนาดใหญ่ ดังนั้นทดสอบ gemini-3.1-pro-preview หรือ claude-sonnet-4-6 บนฝั่ง filing ก่อนสมมติค่าเริ่มต้น
- รากฐานของ FinGPT เป็นสองภาษา ถ้า pipeline ของคุณอ่าน filing หรือข่าวภาษาจีน glm-5.2 และ deepseek-v4-pro แข็งแกร่งโดยธรรมชาติตรงนั้นและเรียกใช้ได้ผ่าน endpoint เดียวกันด้วย id
- การรัน LLMConfig เดียวสำหรับ agent ทั้งหมดคือค่าเริ่มต้นของ notebook แต่ไม่มีอะไรห้ามคุณสร้างสอง dict กับ base_url เดียวกัน ตัวหนึ่งเป็น frontier สำหรับที่ปรึกษาและอีกตัวเป็นตัวเร็วสำหรับผู้อ่าน แล้วกำหนดให้ตรงตาม agent
จ่ายตามการใช้งาน · ถูกกว่าราคาทางการ
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| โมเดล | ราคาทางการ | ราคาของเรา |
|---|---|---|
| Claude Opus 4.7 | $5.00 / $25.00 per M | $4.00 / $20.00 per M |
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| GPT-5.5 | $5.00 / $30.00 per M | $4.00 / $24.00 per M |
| DeepSeek V4 Pro | $0.43 / $0.87 per M | $0.40 / $0.90 per M |
| GLM-5.2 | $1.14 / $4.00 per M | $1.10 / $4.00 per M |
ข้อควรระวัง: ไม่ใช่ทุก base_url ใน FinGPT ที่เป็น LLM
FinGPT คือ research monorepo และมีบางอย่างที่ดูเหมือนการตั้งค่า LLM endpoint โดยที่ไม่ใช่ market_sentiment.py ของ Forecaster มีพารามิเตอร์ api_key และ base_url แต่มันตั้งค่าบริการ sentiment ข้อมูลตลาด (อ่านจาก ADANOS_API_KEY) ไม่ใช่ endpoint แบบ chat-completions การเปลี่ยน base_url นั้นไม่ route LLM traffic ใด ๆ โมเดล FinGPT-Forecaster เองก็เป็น weight ของ Llama ที่ fine-tune แล้วซึ่งเสิร์ฟผ่าน Hugging Face ดังนั้น demo forecaster ไม่ใช่ผู้บริโภคแบบ OpenAI-compatible เลย แพลตฟอร์ม Finogrid ที่ใหม่กว่าใน repo เลือก LLM ของมันผ่านตัวแปร environment FINGPT_LLM_PROVIDER (openai, minimax หรือ fingpt) และอ่าน OPENAI_API_KEY สำหรับ provider openai ณ กรกฎาคม 2026 ไฟล์ตัวอย่าง environment ของมันระบุการสลับ provider และ key แต่ไม่มีตัวแปร override base-URL ดังนั้นถือว่า Finogrid อยู่นอกขอบเขตสำหรับ gateway จนกว่า upstream จะระบุตัวหนึ่งไว้ สุดท้าย notebook ของ AG2 pin ag2[openai] ไว้ที่ 0.11.4 หรือใหม่กว่า การติดตั้ง pyautogen 0.2 ยุคเก่าตั้งค่า key ทั้งสี่ตัวเดียวกันผ่าน entry config_list แทน class LLMConfig key เหมือนกัน ดังนั้น routing ยังทำงานได้ แต่จับคู่รูปแบบ import ของคุณให้ตรงกับรุ่น AutoGen ที่คุณติดตั้งจริง
ใครที่ route FinGPT ผ่าน gateway
- นักวิจัย quant ที่รันการวิเคราะห์แบบ multi-agent ข้ามรายการ ticker turn agent หลายสิบครั้งต่อหุ้นทำให้การมองเห็น usage ต่อ key มีประโยชน์กว่า dashboard ของ vendor ต่อ provider
- ทีมที่เปรียบเทียบคุณภาพการวิเคราะห์ข้ามตระกูลโมเดล ผู้สมัครแต่ละคนคือสตริงโมเดลเดียวใน LLMConfig ไม่ใช่การผสาน provider และบัญชีใหม่
- นักวิเคราะห์ที่ประมวลผล filing เป็นจำนวนมากผ่าน pipeline รายงาน ที่ความต่างราคาแบบ context ยาวระหว่าง id ครอบงำบิล
- ทีมการเงินสองภาษาที่จับคู่ id ที่แข็งแกร่งด้านจีนอย่าง glm-5.2 หรือ deepseek-v4-pro กับ reasoning ของ Claude หรือ GPT ทั้งหมดหลัง endpoint เดียว
- นักพัฒนาที่ไม่มีสิทธิ์เข้าถึงระบบเก็บเงินของ vendor รายหนึ่ง การเข้าถึงแบบเติมเงินโดยไม่ต้องใช้บัตรตัดการพึ่งพาการสมัครต่อ provider ออกไป
ตรวจสอบ endpoint และ debug การรันแรก
ก่อนเปิด notebook ให้ลิสต์โมเดลที่ key ของคุณเรียกใช้ได้ สตริงโมเดลใน LLMConfig ต้องตรงกับ id ที่เสิร์ฟจริงเป๊ะ ความล้มเหลวในการรันครั้งแรกมีรายการสั้น ๆ 401 หมายความว่า api_key ใน dict ไม่ใช่ key ที่ใช้ได้กับ endpoint ใน base_url เพราะทั้งคู่อยู่ใน dict เดียวกัน ให้พิมพ์ dict ออกมาดู (ไม่รวม key) และตรวจสอบว่าคุณแก้ copy ที่ agent ได้รับจริง error model-not-found คือ id พิมพ์ผิด และ output ของ /v1/models คือการสะกดที่น่าเชื่อถือ connection error มักหมายความว่า base_url สูญเสีย suffix /v1 เพราะ client เติม /chat/completions ต่อ base ใดก็ตามที่คุณให้ และถ้าขั้นตอน sentiment ล้มเหลวในขณะที่ agent chat ทำงานได้ นั่นคือตัวจัดหมวด FinBERT ในเครื่องหรือการติดตั้ง transformers ที่ขาดหาย ไม่ใช่ gateway เมื่อ request ไหลลื่นแล้ว console ของ APIsRouter แสดงโมเดลต่อ request, จำนวน token และค่าใช้จ่าย pipeline แบบ multi-agent คูณ call เร็วมาก และมุมมอง usage คือที่ที่คุณเห็นว่าบทบาท agent ไหนกำลังใช้ token ก่อนที่จะขยายการรันไปยัง watchlist เต็ม
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50คำถามที่พบบ่อย
FinGPT รองรับ custom OpenAI-compatible endpoint ตั้งแต่แรกไหม?
รองรับ ใน pipeline ที่ขับเคลื่อนด้วย API notebook วิเคราะห์แบบ multi-agent ของ AG2 ตั้งค่า LLMConfig ด้วย api_type "openai" บวก base_url และ notebook วิเคราะห์รายงานส่ง base_url ให้ ChatOpenAI ของ LangChain ทั้งคู่เป็นรูปแบบต้นทาง ส่วนโมเดล local ที่ fine-tune แล้วเป็นครึ่งที่แยกและออฟไลน์ของโปรเจกต์
agent ของ FinGPT รันบนโมเดล Claude หรือ DeepSeek แบบนี้ได้ไหม?
ได้ api_type ยังคงเป็น "openai" และฟิลด์ model ถูกส่งต่อเป็นสตริงธรรมดาผ่าน /v1/chat/completions id ใดก็ตามที่ endpoint หลัง base_url เสิร์ฟใช้ได้ รวมถึง id ของ Claude, DeepSeek, GLM และ Gemini
ฉันยังต้องมีบัญชี OpenAI สำหรับ pipeline ของ AG2 ไหม?
ไม่ต้อง เมื่อ base_url ชี้ไปที่ gateway และ api_key ถือ key ของ gateway ไม่มี request ใดแตะ host ของ OpenAI notebook ต้นทางเองก็แสดงสิ่งนี้ด้วยการ route ผ่าน endpoint ที่ไม่ใช่ OpenAI-compatible
custom base_url มีผลต่อข้อมูลตลาดหรือคะแนน sentiment ของ FinBERT ของ FinGPT ไหม?
ไม่มีผล ราคาจาก yfinance และตัวจัดหมวด FinBERT รันในเครื่องโดยไม่ต้องใช้ API key และ credential ของ SEC และ Financial Modeling Prep ใน pipeline รายงานเป็น key ข้อมูลแยกต่างหาก LLM endpoint คือสิ่งเดียวที่ base_url ย้าย
แล้วพารามิเตอร์ base_url ใน market_sentiment.py ของ Forecaster ล่ะ?
ตัวนั้นตั้งค่าบริการ sentiment ข้อมูลตลาดที่ยืนยันตัวตนด้วย ADANOS_API_KEY ไม่ใช่ LLM endpoint โมเดลของ Forecaster เองก็เป็น weight ที่ fine-tune แล้วซึ่งเสิร์ฟผ่าน Hugging Face ดังนั้นไม่มี routing แบบ OpenAI-compatible ใช้ได้ตรงนั้น
แพลตฟอร์ม Finogrid ใน FinGPT รองรับ custom endpoint ด้วยไหม?
ยังไม่มีเอกสารระบุ ณ กรกฎาคม 2026 Finogrid เลือก provider ผ่าน FINGPT_LLM_PROVIDER และอ่าน OPENAI_API_KEY แต่ไฟล์ตัวอย่าง environment ของมันไม่แสดง base-URL override ดังนั้นสมมติว่าเป็นการ route ตรงไปที่ vendor จนกว่า upstream จะเพิ่มตัวหนึ่ง