−25%

በWindows ዓመታዊ ክፍያ ላይ፣ እስከ ኦክቶበር 31። ዕቅዶችን ይመልከቱ

EQVPS
ጀምር

ለLangfuse VPS፦ የAI ወኪሎችዎ ምን እንዳደረጉ ይመልከቱ

Langfuseን ራስዎ ያስተናግዱና ያለ ክትትል የሚሠሩ ወኪሎችን እያንዳንዱን የLLM ጥሪ እና የመሣሪያ እርምጃ ይከታተሉ። የተፈተነ Docker Compose፣ እውነተኛ የRAM ቁጥሮችና ተስማሚ ዕቅድ።

ማንም ሳይመለከተው ከሌሊቱ ዘጠኝ ሰዓት የሚሠራ ወኪል ዋጋው በኋላ ምን እንዳደረገ መልሰው ማወቅ በሚችሉት ልክ ነው። «በአንድ ሌሊት የ38 $ ቶከን አቃጠለ» መጥፎ ጠዋት ነው። «የፍለጋ መሣሪያው ባዶ ገጽ መለሰና ፕላነሩ 400 ጊዜ ስለደገመ 38 $ አቃጠለ» ደግሞ ከምሳ በፊት የሚያስተካክሉት ስህተት ነው። ሁለተኛው ዓረፍተ ነገር ዱካዎችን ይፈልጋል።

Langfuse እያንዳንዱን የLLM ጥሪ፣ prompt፣ የመሣሪያ እርምጃ፣ የቶከን ብዛትና መዘግየት ጠቅ እያደረጉ ሊያስሱት በሚችሉት ዛፍ መልክ ይመዘግባል። ራስዎ ሲያስተናግዱት፣ እነዚህ promptsና መልሶች — ብዙ ጊዜ የደንበኞች ውሂብ፣ የAPI ውጤቶችና አልፎ አልፎ የተረሳ ሚስጥር ይይዛሉ — በሌላ ሰው ዳሽቦርድ ሳይሆን እርስዎ በሚቆጣጠሩት ሰርቨር ላይ ይቆያሉ።

እንዲሠራ ለማቆየት የሚያስፈልገው

Langfuse v4 አንድ ትንሽ ፕሮግራም ሳይሆን ስድስት ኮንቴይነሮች ነው፦ የዌብ መተግበሪያ፣ የጀርባ worker፣ Postgres፣ ለክስተቶች ClickHouse፣ Redis እና ለፋይሎች MinIO። በሙከራ ሰርቨር ላይ ጭነነው ባዶ ፕሮጀክት ይዞ 3.5 GB ገደማ RAM ሲጠቀም ለካነው። የሚያድገው ClickHouse ነው፣ ምክንያቱም የሚልኩት እያንዳንዱ span እዚያ ይገባል።

ጭነትዕቅድ
ጥቂት ወኪሎች፣ የሳምንታት ዱካዎችMedium-IP፦ 6 vCPU፣ 6 GB፣ 45 GB ($20/ወር)
የወኪሎች ስብስብ፣ የወራት ታሪክPro ዕቅዶች፣ ከ32 GB RAM ጀምሮ — በጥያቄ

በትናንሽ ዕቅዶች ላይ ይጫናል፣ ነገር ግን ClickHouse እና worker በአንድ ጊዜ ማህደረ ትውስታ እንደፈለጉ ይቸገራል። እኔ ከ6 GB በታች አልወርድም።

ወኪሎቹ የት ይኖራሉ? በሌሎች ማሽኖች ላይ የሚሠሩ ከሆነ የራሱ IPv4 ያለው ዕቅድ ይምረጡ፦ HTTPS endpoint ያስፈልጋቸዋል፣ በNAT ዕቅድ ደግሞ የወጪ አድራሻው የእርስዎ ብቻ አይደለም፣ ከውጭም የሚደረሰው SSH ፖርት ብቻ ነው። ወኪሎቹ በዚሁ ሰርቨር ላይ የሚሠሩ ከሆነ Langfuse ወደ ኢንተርኔት መጋለጥ አያስፈልገውም፦ ለሙከራ NAT ያለው Medium ($12/ወር) በቂ ነው። ሁለት ቦታዎች አሉ፣ ጀርመንና ፊንላንድ፤ መገኘቱ በትዕዛዝ ጊዜ ይታያል። ለእርስዎ ሳይሆን ለወኪሎቹ የቀረበውን ይምረጡ። ሰርቨሮች የሚከፈሉት በክሪፕቶ ነው፣ ያለ KYC።

ጭነት

በአዲስ Ubuntu 24.04 ወይም Debian 12 ሰርቨር ላይ፣ እንደ root። በመጀመሪያ Docker፦

curl -fsSL https://get.docker.com | sh

ከዚያ Langfuse ራሱ፣ ከ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

ከእነዚህ የይለፍ ቃሎች ሁለቱ ጥንድ አላቸው፦ የPostgres የይለፍ ቃል በDATABASE_URL ውስጥም አለ፣ የMinIO የይለፍ ቃል ደግሞ ከሦስቱ S3_..._SECRET_ACCESS_KEY መስመሮች ጋር መመሳሰል አለበት። ስለዚህ እያንዳንዱ ከአንድ ተለዋዋጭ ይመጣል።

አሁን ወጥመዱ። የcompose ፋይሉ የዌብ መተግበሪያውን በፖርት 3000፣ MinIOን በ9090 በሁሉም በይነገጾች ላይ ያትማል፣ Docker ያተማቸው ፖርቶች ደግሞ ufwን ያልፋሉ። reverse proxy ብቸኛው መግቢያ እንዲሆን ሁለቱንም ከlocalhost ጋር ያስሩ፦

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

የመጨረሻው ትዕዛዝ {"status":"OK", ...} ማሳየት አለበት። የመጀመሪያው ጅምር የውሂብ ጎታ ፍልሰቶችን ያካሂዳል፤ በሙከራችን ኮንቴይነሮቹ ከተነሡ ከ15 ሰከንድ ገደማ በኋላ የጤና ፍተሻው አልፏል።

ከፊት HTTPS

langfuse.example.comን ወደ ሰርቨሩ IP ያመልክቱ፣ ከዚያ፦

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 የምስክር ወረቀቱን ራሱ ያገኛል። ጣቢያውን ይክፈቱ፣ መለያዎን ይፍጠሩ (የመጀመሪያው ድርጅት ይሆናል)፣ ፕሮጀክት ያክሉና የሕዝብና ሚስጥራዊ ቁልፎቹን ይቅዱ።

ከዚያ በሩን ከኋላዎ ይዝጉ። Langfuse AUTH_DISABLE_SIGNUPን ይረዳል፣ ነገር ግን ነባሪው compose ፋይል ወደ web ኮንቴይነር አያስተላልፈውም፤ ስለዚህ ከ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

ከአሁን ጀምሮ የምዝገባ ሙከራ «Sign up is disabled» ይደርሰዋል። የሥራ ባልደረቦችን ከፕሮጀክቱ ውስጥ ያክሉ።

ከወኪል ዱካዎችን መላክ

የPython SDK ተግባሮችዎን ይጠቀልላል፣ እርስ በርስ የተካተቱ ጥሪዎችም እርስ በርስ የተካተቱ spans ይሆናሉ፦

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()  # የ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()  # አጫጭር ስክሪፕቶች የጀርባ ላኪው ከማለቁ በፊት ይዘጋሉ

LANGFUSE_BASE_URLን አይዝለሉ። ያለ እሱ SDK ሁሉንም ነገር በዝምታ ወደ Langfuse ደመና ይልካል፣ ቁልፎችዎ እዚያ የሉም፣ እርስዎም ባዶ ዳሽቦርድ እያዩ ይቀራሉ።

spans መድረሳቸውን ከተርሚናል ለማረጋገጥ፦

curl -s -u "$LANGFUSE_PUBLIC_KEY:$LANGFUSE_SECRET_KEY" \
  "$LANGFUSE_BASE_URL/api/public/v2/observations?limit=5"

በv4 ውስጥ የድሮው endpoint /api/public/traces ስለevents-only ሁነታ ስህተት ይመልሳል። ይህ የሚጠበቅ ነው፣ የተበላሸ ጭነት አይደለም። በእውነተኛ ወኪል ውስጥ የLLM ጥሪውንና እያንዳንዱን መሣሪያ በተመሳሳይ መንገድ ይጠቀልላሉ፤ በተጨማሪም Langfuse ለተለመዱ LLM SDKዎችና የወኪል ማዕቀፎች ውህደቶች አሉት፣ ስለዚህ ብዙ ጊዜ በየቦታው decorator ከመበተን ይልቅ አንድ import መቀየር በቂ ነው።

ምን መከታተል እንዳለብዎ

  • ዲስክ። ClickHouse እና MinIO የሚልኩትን ሁሉ ያስቀምጣሉ። ቦታው የት እንደሄደ docker system df -v ያሳያል። ረጅም promptsና መልሶችን የሚከታተሉ ከሆነ የMedium-IP 45 GB በዓመታት ሳይሆን በሳምንታት ይሞላል። በወር አንድ ጊዜ ይፈትሹ፤ ሲጠብ 400 GB ወይም ከዚያ በላይ ያለው Pro ዕቅድ በጥያቄ ይገኛል።
  • ማሻሻያዎች። የcompose ፋይሉ ዋና ስሪቱን (:4) ያስራል። docker compose pull && docker compose up -d በዚያ ስሪት ውስጥ ያሉ ጥገናዎችን ያመጣል። ዋና ስሪት ከመቀየርዎ በፊት changelogን ያንብቡ፦ የዱካዎች endpoint የጠፋው በትክክል በv4 ነው።
  • ምትኬዎች። አስፈላጊው ነገር በDocker volumes ውስጥ ነው፦ Postgres ተጠቃሚዎችን፣ ፕሮጀክቶችንና ቁልፎችን ይይዛል፤ ClickHouse እና MinIO ዱካዎቹን ራሳቸው። በመርሐ ግብር ከሰርቨሩ ውጭ ይቅዷቸው።

በወር $20 ይገባዋል? ወኪሎችዎ ለቶከን ከዚያ በላይ የሚያወጡ ከሆነ — አብዛኞቹ ያለ ክትትል የሚሠሩ ወኪሎችም ያወጣሉ — ቶከኖቹ የት እንደሄዱ ማወቅ አንድ ዑደት ለመጀመሪያ ጊዜ ከቁጥጥር ሲወጣ ዋጋውን ይመልሳል። በቀን አንድ ጊዜ የሚሠራ ትንሽ ወኪል ከዚህ ውስጥ ምንም አያስፈልገውም፦ የlog ፋይልና የቶከን ቆጣሪ በቂ ናቸው።

ተዛማጅ

ለማሰማራት ዝግጁ ኖት? በክሪፕቶ ይክፈሉ፣ KYC የለም — በአንድ ደቂቃ ገደማ ቀጥታ።

አሁን ያሰማሩ →

FAQ

በራስዎ ሰርቨር ላይ ያለ Langfuse ምን ያህል RAM ያስፈልገዋል?

በሙከራ ሰርቨራችን ላይ Langfuse v4 እንደ ስድስት ኮንቴይነሮች ሠርቷል — web፣ worker፣ Postgres፣ ClickHouse፣ Redis እና MinIO — ባዶ ፕሮጀክት ይዞም 3.5 GB ገደማ RAM ተጠቅሟል። ClickHouse በሚልኩት እያንዳንዱ span ያድጋል። Medium-IP (6 GB RAM፣ 45 GB ዲስክ) ለጥቂት ወኪሎች በምቾት ያሠራዋል፤ የወራት ታሪክ ያለው ሙሉ የወኪሎች ስብስብ ግን Pro ዕቅድ ያስፈልገዋል፣ ይህም በጥያቄ ይገኛል።

Langfuse የራሱ IP አድራሻ ያስፈልገዋል?

ወኪሎቹ ሌላ ቦታ ሆነው ዱካዎችን በኢንተርኔት የሚልኩ ከሆነ ብቻ፦ HTTPS endpoint ያስፈልጋቸዋል፣ የNAT ዕቅድ ደግሞ ከውጭ የሚቀበለው የእርስዎን SSH ፖርት ብቻ ነው። ወኪሎቹ በዚያው ሰርቨር ላይ ከሆኑ Langfuse በlocalhost ላይ ሊቆይ ይችላል፣ ዳሽቦርዱንም በSSH ዋሻ ይከፍታሉ፤ ለዚህ NAT ያለው Medium ዕቅድ በቂ ነው።

ኮዱ ይሠራል፣ ዳሽቦርዱ ግን ባዶ ነው። ለምን?

ሁልጊዜ ማለት ይቻላል LANGFUSE_BASE_URL አልተዘጋጀም። ያለ እሱ SDK ሁሉንም ነገር ወደ Langfuse የራሱ ደመና ይልካል፣ የራስዎ ሰርቨር ቁልፎች እዚያ የሉም፣ ወደ ሰርቨርዎም ምንም አይደርስም። በተለዋዋጩ ውስጥ የራስዎን አድራሻ ያስገቡ።

/api/public/traces endpoint ስህተት ይመልሳል። ጭነቱ ተበላሽቷል?

አይደለም። Langfuse v4 በevents-only ሁነታ ይሠራል፣ በዚህ ሁነታም ይህ endpoint ጠፍቷል። ውሂቡን በ/api/public/v2/observations ያንብቡ — የሙከራ spansችን መድረሳቸውን ያረጋገጥነው በዚሁ ጥሪ ነው።

እንግዶች በእኔ ሰርቨር ላይ እንዳይመዘገቡ እንዴት አግዳለሁ?

Langfuse AUTH_DISABLE_SIGNUPን ያነባል፣ ነገር ግን ነባሪው docker-compose.yml ይህን ተለዋዋጭ ወደ web ኮንቴይነር አያስተላልፍም፤ ስለዚህ በ.env ውስጥ ብቻ መጻፍ ምንም አይጠቅምም። በlangfuse-web አካባቢ ውስጥ አንድ መስመር ያክሉ (ትዕዛዙ ከታች አለ)፣ የራስዎን መለያ ከፈጠሩ በኋላ trueን ያዘጋጁ፣ ቀጣይ ምዝገባዎችም «Sign up is disabled» ይደርሳቸዋል።

አስተያየቶች

እስካሁን አስተያየቶች የሉም። መጀመሪያ ይሁኑ።

አስተያየት ይተዉ

አስተያየቶች ከመታየታቸው በፊት ይጣራሉ።