ማንም ሳይመለከተው ከሌሊቱ ዘጠኝ ሰዓት የሚሠራ ወኪል ዋጋው በኋላ ምን እንዳደረገ መልሰው ማወቅ በሚችሉት ልክ ነው። «በአንድ ሌሊት የ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 ፋይልና የቶከን ቆጣሪ በቂ ናቸው።
ተዛማጅ
- ለAI ወኪሎች VPS፦ ወኪሎቹ ራሳቸው የሚሠሩበት ቦታ
- ለባለብዙ ወኪል ሥርዓቶች VPS፦ ለሙሉ ስብስብ ሀብትን መገመት
- ለLiteLLM proxy VPS፦ ለሁሉም የሞዴል ቁልፎች አንድ መግቢያ፣ ከወጪ ገደብ ጋር
- Pro ዕቅዶች በጥያቄ፦ ለወኪሎች ስብስብ ከ32 እስከ 80 GB RAM
- የufw ፋየርዎልን እንዴት ማዋቀር እንደሚቻል
አስተያየቶች
እስካሁን አስተያየቶች የሉም። መጀመሪያ ይሁኑ።