აგენტი, რომელიც ღამის სამ საათზე უზედამხედველოდ მუშაობს, ზუსტად იმდენი ღირს, რამდენადაც შემდეგ შეგიძლიათ აღადგინოთ, რას აკეთებდა. „ღამით 38 $-ის ტოკენები დაწვა“ ცუდი დილაა. „38 $ დაწვა, რადგან ძიების ინსტრუმენტმა ცარიელი გვერდი დააბრუნა, დამგეგმავმა კი 400-ჯერ სცადა ხელახლა“ — ეს ბაგია, რომელსაც სადილამდე გაასწორებთ. მეორე წინადადებისთვის კვალი გჭირდებათ.
Langfuse ყოველ LLM-გამოძახებას, პრომპტს, ინსტრუმენტის ნაბიჯს, ტოკენების რაოდენობას და დაყოვნებას ხის სახით ინახავს, რომელშიც დაწკაპუნებით გადაადგილდებით. როცა ის თქვენს სერვერზეა, ეს პრომპტები და პასუხები — მათში ხშირად კლიენტების მონაცემები, 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 მისამართი სჭირდებათ, NAT ტარიფზე კი გამავალი მისამართი თქვენი საკუთარი არ არის და გარედან მხოლოდ SSH პორტია ხელმისაწვდომი. თუ აგენტები იმავე სერვერზე მუშაობენ, Langfuse-ს ინტერნეტში გასვლა საერთოდ არ სჭირდება: საცდელად საკმარისია Medium NAT-ით ($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-ს გვერდს უვლიან. ორივე localhost-ს მიაბით, რომ ერთადერთი შესასვლელი reverse proxy დარჩეს:
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 ფაილი მას ვებ-კონტეინერს არ გადასცემს, ამიტომ 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 თქვენს ფუნქციებს ახვევს, ჩადგმული გამოძახებები კი ჩადგმულ span-ებად იქცევა:
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-ის ღრუბელში, თქვენი გასაღებები იქ არ არის და ცარიელ პანელს უყურებთ.
კონსოლიდან შემოწმება, რომ span-ები მივიდა:
curl -s -u "$LANGFUSE_PUBLIC_KEY:$LANGFUSE_SECRET_KEY" \
"$LANGFUSE_BASE_URL/api/public/v2/observations?limit=5"
v4-ში ძველი ენდპოინტი /api/public/traces events-only რეჟიმზე შეცდომით პასუხობს. ასეც უნდა იყოს, ინსტალაცია არ არის გაფუჭებული. ნამდვილ აგენტში ასევე ახვევთ LLM-გამოძახებას და თითოეულ ინსტრუმენტს; ამასთან, Langfuse-ს აქვს ინტეგრაციები პოპულარულ LLM SDK-ებთან და აგენტების ფრეიმვორკებთან, ამიტომ ხშირად საკმარისია ერთი import-ის შეცვლა, ნაცვლად იმისა, რომ ყველგან დეკორატორები ჩასვათ.
რას უნდა ადევნოთ თვალი
- დისკი. ClickHouse და MinIO ყველაფერს ინახავენ, რასაც აგზავნით. სად წავიდა ადგილი,
docker system df -vგაჩვენებთ. თუ გრძელ პრომპტებსა და პასუხებს აკვირდებით, Medium-IP-ის 45 GB კვირებში შეივსება და არა წლებში. შეამოწმეთ თვეში ერთხელ; როცა ვიწრო გახდება, Pro ტარიფი 400 GB-ით ან მეტით ხელმისაწვდომია მოთხოვნით. - განახლებები. compose ფაილი ძირითად ვერსიას აფიქსირებს (
:4).docker compose pull && docker compose up -dმის ფარგლებში შესწორებებს მოიტანს. ძირითადი ვერსიის შეცვლამდე წაიკითხეთ changelog: სწორედ v4-ში გაქრა კვალის ენდპოინტი. - სარეზერვო ასლები. ყველაფერი ღირებული Docker-ის ტომებშია: Postgres-ში — მომხმარებლები, პროექტები და გასაღებები, ClickHouse-სა და MinIO-ში — თავად კვალი. დააკოპირეთ ისინი სერვერის გარეთ განრიგით.
ღირს თუ არა ეს $20 თვეში? თუ თქვენი აგენტები ტოკენებზე ამაზე მეტს ხარჯავენ — და უზედამხედველო აგენტები ჩვეულებრივ ხარჯავენ, — ცოდნა, სად წავიდა ტოკენები, პირველივე გაუკონტროლებელ ციკლზე ამოიღებს ხარჯს. ერთ პატარა აგენტს, რომელიც დღეში ერთხელ ეშვება, ამათგან არაფერი სჭირდება: ლოგ-ფაილი და ტოკენების მრიცხველი საკმარისია.
დაკავშირებული
- VPS AI აგენტებისთვის — სადაც თავად აგენტები მუშაობენ
- VPS მრავალაგენტური სისტემებისთვის — როგორ შევაფასოთ რესურსები მთელი ფლოტისთვის
- VPS LiteLLM პროქსისთვის — ერთი კარიბჭე მოდელების ყველა გასაღებისთვის, ხარჯების ლიმიტებით
- Pro ტარიფები მოთხოვნით — 32-დან 80 GB-მდე RAM აგენტების ფლოტისთვის
- როგორ დავაყენოთ ufw ფაიერვოლი
კომენტარები
ჯერ არ არის კომენტარები. იყავით პირველი.