Wakala anayefanya kazi saa tisa usiku bila mtu yeyote kumtazama ana thamani sawa na uwezo wako wa kujua baadaye alifanya nini. «Alichoma tokeni za 38 $ usiku» ni asubuhi mbaya. «Alichoma 38 $ kwa sababu zana ya utafutaji ilirudisha ukurasa mtupu na mpangaji akajaribu tena mara 400» ni hitilafu unayoirekebisha kabla ya chakula cha mchana. Sentensi ya pili inahitaji trace.
Langfuse hurekodi kila wito wa LLM, kila prompt, hatua ya zana, idadi ya tokeni na muda wa kusubiri kama mti unaoweza kuubofya. Ukiiendesha mwenyewe, prompt na majibu hayo — ambayo mara nyingi yana data za wateja, matokeo ya API na wakati mwingine siri iliyopotea — hubaki kwenye seva unayoidhibiti, si kwenye dashibodi ya mtu mwingine.
Gharama ya kuiendesha
Langfuse v4 si faili moja dogo, bali kontena sita: programu ya wavuti, worker wa nyuma, Postgres, ClickHouse kwa matukio, Redis na MinIO kwa faili. Tuliisakinisha kwenye seva ya majaribio na tukapima takriban GB 3.5 za RAM zikitumika ikiwa na mradi mtupu. Kinachokua ni ClickHouse, kwa sababu kila span unayotuma huishia hapo.
| Mzigo | Mpango |
|---|---|
| Mawakala wachache, trace za wiki kadhaa | Medium-IP: 6 vCPU, 6 GB, 45 GB ($20/mwezi) |
| Kundi la mawakala, historia ya miezi | Mipango ya Pro, kuanzia RAM ya GB 32 — kwa ombi |
Kwenye mipango midogo zaidi itasakinishwa, lakini kisha itahangaika mara tu ClickHouse na worker wanapohitaji kumbukumbu kwa wakati mmoja. Mimi nisingeshuka chini ya GB 6.
Mawakala wanaishi wapi? Ikiwa wanaendeshwa kwenye mashine nyingine, chagua mpango wenye IPv4 yake: wanahitaji endpoint ya HTTPS, na kwenye mpango wa NAT anwani ya kutoka si yako mwenyewe na kutoka nje unafikia bandari ya SSH pekee. Ikiwa mawakala wanaendeshwa kwenye seva hii hii, Langfuse haihitaji kuonekana kwenye intaneti hata kidogo: kwa majaribio inatosha Medium yenye NAT ($12/mwezi). Kuna maeneo mawili, Ujerumani na Ufini; upatikanaji unaonekana wakati wa kuagiza. Chagua lililo karibu zaidi na mawakala, si na wewe. Seva hulipiwa kwa crypto, bila KYC.
Usakinishaji
Kwenye seva mpya ya Ubuntu 24.04 au Debian 12, kama root. Kwanza Docker:
curl -fsSL https://get.docker.com | sh
Kisha Langfuse, kwa siri halisi badala ya thamani chaguo-msingi za faili la compose:
git clone --depth 1 https://github.com/langfuse/langfuse.git
cd langfuse
PG=$(openssl rand -hex 16); MINIO=$(openssl rand -hex 16)
cat > .env <<EOF
NEXTAUTH_URL=https://langfuse.example.com
NEXTAUTH_SECRET=$(openssl rand -hex 32)
SALT=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 32)
POSTGRES_PASSWORD=$PG
DATABASE_URL=postgresql://postgres:$PG@postgres:5432/postgres
CLICKHOUSE_PASSWORD=$(openssl rand -hex 16)
MINIO_ROOT_PASSWORD=$MINIO
LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY=$MINIO
LANGFUSE_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY=$MINIO
LANGFUSE_S3_BATCH_EXPORT_SECRET_ACCESS_KEY=$MINIO
REDIS_AUTH=$(openssl rand -hex 16)
TELEMETRY_ENABLED=false
EOF
chmod 600 .env
Nywila mbili kati ya hizo zinaenda kwa jozi: nywila ya Postgres pia imo ndani ya DATABASE_URL, na nywila ya MinIO lazima ilingane na mistari mitatu ya S3_..._SECRET_ACCESS_KEY. Ndiyo maana kila moja inatoka kwenye kigezo kimoja.
Sasa mtego. Faili la compose huchapisha programu ya wavuti kwenye bandari 3000 na MinIO kwenye 9090 kwenye violesura vyote, na bandari zinazochapishwa na Docker hupita kando ya ufw. Zifunge zote mbili kwenye localhost ili reverse proxy ibaki mlango pekee:
sed -i 's/- 3000:3000/- 127.0.0.1:3000:3000/; s/- 9090:9000/- 127.0.0.1:9090:9000/' docker-compose.yml
docker compose up -d
curl -s http://127.0.0.1:3000/api/public/health
Amri ya mwisho inapaswa kuonyesha {"status":"OK", ...}. Uzinduzi wa kwanza huendesha uhamishaji wa hifadhidata; katika majaribio yetu, ukaguzi wa afya ulipita takriban sekunde 15 baada ya kontena kuwaka.
HTTPS mbele
Elekeza langfuse.example.com kwenye IP ya seva, kisha:
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
langfuse.example.com {
reverse_proxy 127.0.0.1:3000
}
EOF
systemctl reload caddy
ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp && ufw enable
Caddy huchukua cheti chenyewe. Fungua tovuti, unda akaunti yako (inakuwa shirika la kwanza), ongeza mradi na unakili funguo zake za umma na za siri.
Kisha funga mlango nyuma yako. Langfuse inaelewa AUTH_DISABLE_SIGNUP, lakini faili la compose la kawaida halipitishi kwenye kontena la web, kwa hiyo unahitaji mstari mmoja zaidi chini ya langfuse-web:
sed -i 's|^ NEXTAUTH_SECRET: \(.*\)$| NEXTAUTH_SECRET: \1\n AUTH_DISABLE_SIGNUP: ${AUTH_DISABLE_SIGNUP:-false}|' docker-compose.yml
echo "AUTH_DISABLE_SIGNUP=true" >> .env
docker compose up -d
Kuanzia sasa, jaribio la kujisajili linapata «Sign up is disabled». Wenzako unawaongeza kutoka ndani ya mradi.
Kutuma trace kutoka kwa wakala
SDK ya Python hufunika funksheni zako, na wito zilizo ndani ya nyingine huwa span zilizo ndani ya nyingine:
python3 -m venv venv && . venv/bin/activate
pip install langfuse
export LANGFUSE_PUBLIC_KEY=pk-lf-...
export LANGFUSE_SECRET_KEY=sk-lf-...
export LANGFUSE_BASE_URL=https://langfuse.example.com
from langfuse import get_client, observe
langfuse = get_client() # inasoma vigezo vya LANGFUSE_*
@observe(name="fetch-prices")
def fetch_prices(pair: str) -> dict:
return {"pair": pair, "bid": 64210.5}
@observe(name="nightly-agent-run")
def run() -> str:
data = fetch_prices("BTC/USDT")
return f"done: {data['pair']}"
print(run())
langfuse.flush() # skripti fupi huisha kabla utumaji wa chinichini haujakamilika
Usiruke LANGFUSE_BASE_URL. Bila hiyo, SDK kimya kimya hutuma kila kitu kwenye wingu la Langfuse, funguo zako hazipo huko, na unabaki ukitazama dashibodi tupu.
Kuhakikisha kutoka kwenye terminal kwamba span zimefika:
curl -s -u "$LANGFUSE_PUBLIC_KEY:$LANGFUSE_SECRET_KEY" \
"$LANGFUSE_BASE_URL/api/public/v2/observations?limit=5"
Katika v4, endpoint ya zamani /api/public/traces hujibu kwa hitilafu kuhusu hali ya events-only. Hilo linatarajiwa, si usakinishaji ulioharibika. Kwenye wakala halisi unafunika wito wa LLM na kila zana kwa njia hiyo hiyo; zaidi ya hayo Langfuse ina miunganisho ya SDK za LLM na mifumo ya mawakala inayotumika sana, kwa hiyo mara nyingi inatosha kubadilisha import moja badala ya kutawanya decorator kila mahali.
Mambo ya kufuatilia
- Diski. ClickHouse na MinIO huhifadhi kila kitu unachotuma.
docker system df -vhuonyesha nafasi imeenda wapi. Ukifuatilia prompt na majibu marefu, GB 45 za Medium-IP hujaa ndani ya wiki, si miaka. Kagua mara moja kwa mwezi; nafasi ikibana, mpango wa Pro wenye GB 400 au zaidi unapatikana kwa ombi. - Masasisho. Faili la compose hufunga toleo kuu (
:4).docker compose pull && docker compose up -dhuleta marekebisho ndani yake. Soma changelog kabla ya kubadilisha toleo kuu: ni katika v4 hasa ambapo endpoint ya trace ilitoweka. - Nakala rudufu. Kilicho muhimu kimo kwenye volume za Docker: Postgres huhifadhi watumiaji, miradi na funguo; ClickHouse na MinIO huhifadhi trace zenyewe. Zinakili nje ya seva kwa ratiba.
Je, inastahili $20 kwa mwezi? Ikiwa mawakala wako hutumia zaidi ya hapo kwenye tokeni — na mawakala wengi wasiosimamiwa hufanya hivyo — kujua tokeni zilienda wapi hujilipia mara ya kwanza kitanzi kinapokwenda kombo. Wakala mdogo anayeendeshwa mara moja kwa siku hahitaji chochote kati ya haya: faili la log na kihesabu cha tokeni vinatosha.
Zinazohusiana
- VPS kwa mawakala wa AI: mahali mawakala wenyewe wanapoendeshwa
- VPS kwa mifumo ya mawakala wengi: kukadiria rasilimali za kundi zima
- VPS kwa proksi ya LiteLLM: lango moja kwa funguo zote za modeli, lenye mipaka ya matumizi
- Mipango ya Pro kwa ombi: RAM ya GB 32 hadi 80 kwa kundi la mawakala
- Jinsi ya kusanidi firewall ya ufw
Maoni
Bado hakuna maoni. Kuwa wa kwanza.