cari
Rumahpembangunan bahagian belakangTutorial PythonMembina Pelayan Protokol Konteks Model menggunakan Jina.ai dan FastMCP dalam Python

Dalam siaran ini, kami akan membincangkan Protokol Konteks Model, mengapa ia mungkin penting dan berjalan melalui pembinaan Pelayan MCP untuk membantu kami bercakap dengan Jina.ai dan dapat menambahkan carian web dan fungsi semakan fakta dalam Claude Desktop menggunakan Python dan FastMCP.

Protokol Konteks Model

Anthropic diumumkan sekitar Thanksgiving tahun lepas. Walaupun ia mendapat sedikit perhatian, pengiktirafan yang diterima mungkin tidak mencukupi, memandangkan ia boleh menjadi batu loncatan penting dalam membangunkan lapisan seterusnya tindanan perisian AI.

apa

Protokol Konteks Model (MCP) ialah protokol komunikasi piawai yang direka khusus untuk model bahasa besar (LLM).

Anggap ia sebagai "HTTP AI"—sama seperti HTTP menyeragamkan cara pelayar web berkomunikasi dengan pelayan web, MCP menyeragamkan cara aplikasi LLM berkomunikasi dengan alatan dan sumber data.

Mengapa Kita Memerlukan MCP?

landskap semasa pembangunan LLM menghadapi beberapa halangan:

  1. Kerumitan Integrasi Alat: Setiap perkhidmatan LLM (seperti OpenAI, Anthropic, dll.) mempunyai caranya untuk melaksanakan panggilan alat dan panggilan fungsi, menjadikannya rumit untuk membina alatan mudah alih.

  2. Pengurusan Konteks: LLM memerlukan akses kepada pelbagai sumber dan alatan data, tetapi mengurus akses ini dengan selamat dan cekap sememangnya mencabar.

  3. Penstandardan: Tanpa protokol standard, pembangun mesti membina semula lapisan integrasi untuk setiap platform LLM yang mereka mahu sokong.

MCP menyelesaikan cabaran ini dengan menyediakan:

  • Cara piawai untuk mendedahkan alatan dan data kepada LLM
  • Seni bina pelayan pelanggan yang selamat
  • Antara muka yang konsisten tanpa mengira LLM yang mendasari

Bagaimana MCP Berfungsi?

MCP mengikut seni bina pelayan-pelanggan dengan tiga komponen utama:

  1. Pelayan MCP: Perkhidmatan yang mendedahkan:

    • Alat (fungsi yang LLM boleh panggil)
    • Sumber (sumber data)
    • Gesaan (arahan templat)
    • Konteks (maklumat dinamik)
  2. Pelanggan MCP: Aplikasi bersambung ke pelayan MCP dan mengurus komunikasi antara LLM dan pelayan. Sokongan pelanggan berada di peringkat awal, dengan hanya segelintir alat yang melaksanakan mana-mana bahagian spesifikasi protokol setakat ini dan beberapa fungsi yang belum disokong oleh pelanggan.

Building a Model Context Protocol Server using Jina.ai and FastMCP in Python

Dan, sudah tentu, LLM...

Aliran kerja adalah mudah:

  1. Pelayan MCP mendaftarkan keupayaannya (alat, sumber, dll.)
  2. Pelanggan menyambung ke pelayan
  3. LLM kemudiannya boleh menggunakan keupayaan ini melalui antara muka piawai

Protokol Pengangkutan

  • Berbilang Mekanisme Pengangkutan
    • SSE (Acara Dihantar Pelayan)
      • Berkomunikasi melalui HTTP secara dwiarah, proses pelayan diasingkan daripada klien
    • Stdio (Input/Output Standard)
      • Berkomunikasi melalui paip Input/Output Standard, proses pelayan pada dasarnya adalah proses anak klien

Keselamatan

Situasi keselamatan lebih bernuansa. Walaupun pelayan yang menggunakan pengangkutan stdio biasanya dikolokasikan dengan klien, dan oleh itu kunci API tidak semestinya terdedah kepada internet. Mereka nampaknya diedarkan secara santai, IMO.

Kunci ini perlu dimuatkan ke dalam klien apabila pelayan bermula supaya ia boleh dihantar ke proses anak, malah ia muncul dalam log apl desktop, yang...berkenaan.

Penggunaan kunci API secara meluas ialah isu yang lebih luas yang mempengaruhi perkhidmatan, platform dan perkakas Gen AI. Syarikat seperti Okta dan Auth0 sedang mengusahakan penyelesaian untuk mengurus dan membenarkan Gen AI tanpa bergantung pada kunci.

SDK

Anthropic secara rasmi menyokong SDK peringkat rendah untuk TypeScript, Python dan Kotlin. Beberapa pembungkus boilerplate yang baru dibuat telah meliputi beberapa boilerplate dan mempunyai ciri lain yang bagus, seperti CLI untuk penyahpepijatan, pemeriksaan dan pemasangan pelayan pada klien untuk memudahkan pembangunan pelayan MCP.

Bermula dengan FastMCP

Building a Model Context Protocol Server using Jina.ai and FastMCP in Python jlowin / fastmcp

Cara pantas, Pythonic untuk membina pelayan Protokol Konteks Model ?

FastMCP ?

Cara pantas, Pythonic untuk membina pelayan MCP.

Building a Model Context Protocol Server using Jina.ai and FastMCP in Python Building a Model Context Protocol Server using Jina.ai and FastMCP in Python Building a Model Context Protocol Server using Jina.ai and FastMCP in Python

Pelayan Model Konteks Protokol (MCP) ialah cara baharu yang standard untuk menyediakan konteks dan alatan kepada LLM anda, dan FastMCP menjadikan pembinaan pelayan MCP mudah dan intuitif. Cipta alatan, dedahkan sumber dan tentukan gesaan dengan kod Pythonic yang bersih:

# demo.py

from fastmcp import FastMCP


mcp = FastMCP("Demo ?")


@<span>mcp.tool()</span>
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b
Masukkan mod skrin penuh Keluar daripada mod skrin penuh

Itu sahaja! Beri Claude akses kepada pelayan dengan menjalankan:

fastmcp install demo.py
Masukkan mod skrin penuh Keluar daripada mod skrin penuh

FastMCP mengendalikan semua butiran protokol dan pengurusan pelayan yang kompleks, supaya anda boleh menumpukan pada membina alatan yang hebat. Ia direka bentuk untuk tahap tinggi dan Pythonic - dalam kebanyakan kes, menghiasi fungsi adalah semua yang anda perlukan.

Ciri utama:

  • Pantas: Antara muka peringkat tinggi bermakna kurang kod dan pembangunan lebih pantas
  • Mudah
Lihat di GitHub

FastMCP ialah satu rangka kerja sedemikian. Kami kini akan meneroka cara mencipta alat yang hampir praktikal untuk membaca tapak web, menjawab pertanyaan carian melalui web dan maklumat semakan fakta. Kami akan menggunakan Jina.ai.

Ia adalah perkhidmatan yang sangat licik yang menyediakan "platform Asas Carian" yang menggabungkan "Pembenaman, Penarafan Semula dan Model Bahasa Kecil" untuk membantu perniagaan dalam membina pengalaman carian Gen AI dan Multimodal.

Prasyarat

  • uv

Anda perlu dipasang uv. Ia adalah cara yang disyorkan untuk mencipta dan mengurus projek Python. Ia adalah sebahagian daripada rangkaian alat Python yang agak baru tetapi menarik yang dipanggil astral.sh. Saya mengesyorkan anda menyemaknya.

Ia bertujuan untuk menjadi kedai sehenti untuk mengurus projek, kebergantungan, persekitaran maya, versi, linting dan melaksanakan skrip dan modul Python. Ia ditulis dalam Rust. Lakukan dengan maklumat itu apa yang anda akan ?.

  • Apl Desktop Claude

Anda juga perlu memasang Apl Desktop Claude. Untuk tujuan kami, Apl Desktop Claude akan berfungsi sebagai Klien MCP dan merupakan Klien sasaran utama untuk Anthropic.

Building a Model Context Protocol Server using Jina.ai and FastMCP in Python ASRagab / mcp-jinaai-reader

Pelayan Protokol Konteks Model (MCP) untuk API Pembaca Jina.ai

Pelayan MCP untuk API Pembaca Jina.ai

Panduan Penuh di sini:

https://dev.to/asragab/building-a-model-context-protocol-server-using-jinaai-and-fastmcp-in-python-1od8


Lihat di GitHub


Persediaan Projek

Menggunakan uv anda boleh memulakan projek dengan:

# demo.py

from fastmcp import FastMCP


mcp = FastMCP("Demo ?")


@<span>mcp.tool()</span>
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

Ini akan mencipta folder yang dipanggil mcp-jinaai-reader dan versi .python bersama-sama dengan pyproject.toml.

fastmcp install demo.py

Ini akan mencipta env maya yang sepadan dengan versi python yang kami pilih.

Selepas mencipta persekitaran, ia akan memberikan arahan tentang cara mengaktifkannya untuk sesi.

uv init mcp-jinaai-reader --python 3.11

Tambah direktori src dan pasang satu pergantungan yang kami perlukan

cd mcp-jinaai-reader
uv venv 

Buat fail .env pada akar projek dan tambah JINAAI_API_KEY anda pada fail. Anda boleh mendapatkannya secara percuma dengan mendaftar di Jina. Secara umum, sebarang kunci API atau pembolehubah env lain yang perlu dijalankan oleh pelayan anda akan masuk ke dalam fail ini.

source .venv/bin/activate

Dalam direktori src, cipta fail server.py...dan kita sepatutnya boleh mendapatkan kod tersebut.

Kod Pelayan

uv add fastmcp

Bermula dengan import: httpx, akan menjadi perpustakaan yang kami gunakan di sini untuk membuat permintaan http; kami memerlukan kaedah urlparse untuk membantu kami menentukan sama ada rentetan mungkin URL yang sah.

JINAAI_API_KEY=jina_*************

Ini memulakan pelayan; hujah pertama ialah nama alat. Saya tidak pasti 100% mengapa uvicorn perlu ditambah secara eksplisit sebagai pergantungan di sini kerana ia adalah pergantungan transitif FastMCP tetapi ia nampaknya diperlukan.

Ia berkemungkinan disebabkan oleh cara cli fastmcp (lebih lanjut mengenainya sebentar lagi) memasang pelayan. Jika anda mempunyai tanggungan lain, anda mesti menambahkannya di sini supaya pelanggan tahu anda perlu memasangnya sebelum menjalankan klien; kita akan lihat bagaimana ia berfungsi sebentar lagi.

from fastmcp import FastMCP
import httpx
from urllib.parse import urlparse
import os

Anda mungkin boleh melihat corak di sini, tetapi Jina menggunakan subdomain yang berbeza untuk menghalakan permintaan tertentu. Titik akhir carian menjangkakan pertanyaan, titik akhir pembaca menjangkakan URL dan titik akhir asas boleh memberikan respons atau jawapan khusus kepada llm.

Grounding ialah topik yang lebih besar dan digunakan dengan teknik lain, seperti RAG dan penalaan halus, untuk membantu LLM dalam mengurangkan halusinasi dan menambah baik pembuatan keputusan.

Alat pertama kami

# Initialize the MCP server
mcp = FastMCP("search", dependencies=["uvicorn"])

Anotasi @mcp.tool banyak melakukan pengangkatan berat. Anotasi serupa untuk sumber dan gesaan wujud dalam perpustakaan. Anotasi mengekstrak butiran tandatangan fungsi dan jenis pemulangan untuk mencipta skema input dan output untuk llm memanggil alat. Ia mengkonfigurasi alat supaya pelanggan memahami keupayaan pelayan. Ia juga mendaftarkan panggilan fungsi sebagai pengendali untuk alat yang dikonfigurasikan.

Seterusnya, anda akan dapati bahawa fungsi itu tidak segerak. Tiada konfigurasi masa jalan diperlukan dan tiada bahan asyncio.run juga. Jika anda perlu, atas sebab tertentu, menjalankan pelayan sebagai perkhidmatan kendiri, anda perlu mengendalikan sebahagian daripada ini sendiri. Terdapat contoh dalam repo FastMCP untuk cara melakukan ini.

Badan fungsi agak tidak menarik; ia mengesahkan sama ada ia menerima URL, menetapkan pengepala yang sesuai, memanggil titik akhir Jina dan mengembalikan teks.

# demo.py

from fastmcp import FastMCP


mcp = FastMCP("Demo ?")


@<span>mcp.tool()</span>
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

Alat Kedua

fastmcp install demo.py

Dan itu sahaja...

Menguji dan Menyahpepijat

uv init mcp-jinaai-reader --python 3.11

Menjalankan arahan di atas akan memulakan pemeriksa mcp ia adalah alat yang disediakan oleh sdk untuk menguji dan menyahpepijat respons pelayan. Bendera --with-editable membolehkan anda membuat perubahan pada pelayan, tanpa perlu melancarkan semula pemeriksa (sangat, SANGAT disyorkan)

Anda sepatutnya melihat:

cd mcp-jinaai-reader
uv venv 

Secara lalai pemeriksa berjalan pada port 5173, dan pelayan (kod yang anda baru tulis) akan berjalan pada port 3000, anda boleh menukar ini dengan menetapkan SERVER_PORT dan CLIENT_PORT sebelum penyembahan.

source .venv/bin/activate

Inspektor

Building a Model Context Protocol Server using Jina.ai and FastMCP in Python

Jika semuanya berjalan lancar, anda akan melihat sesuatu seperti berikut, di sebelah kiri anda boleh menambah pembolehubah persekitaran yang anda perlukan, di sini JINAAI_API_KEY adalah satu-satunya.

Jika anda mengklik pada Alat pada bar menu atas, dan kemudian Senaraikan Alat anda harus menggunakan alatan yang kami cipta, perhatikan bahawa docstring berfungsi sebagai penerangan untuk alat tersebut.

Mengklik pada alat tertentu akan memaparkan kotak teks untuk anda memasukkan parameter yang diperlukan untuk memanggil alat tersebut.

Memasang Pelayan

Selepas anda berpuas hati semuanya berfungsi seperti yang diharapkan, anda kini bersedia untuk memasang pelayan pada klien Apl Desktop Claude.

uv add fastmcp

Akan melakukan ini, saya pasti pada masa akan datang ia akan menyokong pelanggan lain, tetapi buat masa ini, ini sahaja yang anda perlu lakukan. -f .env akan menghantar pembolehubah env kepada klien aplikasi.

Apa yang dilakukan di bawah tudung ialah mengemas kini claude_desktop_config.json dan menyediakan arahan serta hujah yang diperlukan untuk menjalankan pelayan. Secara lalai ini menggunakan uv yang mesti tersedia pada PATH anda.

Jika anda kini membuka Apl Desktop Claude, dan pergi ke Bar Menu dan Klik Claude > Tetapan dan kemudian klik pada Pembangun anda harus melihat nama alat anda yang anda tetapkan semasa memulakan pelayan.

Building a Model Context Protocol Server using Jina.ai and FastMCP in Python

Mengklik padanya akan memaparkan konfigurasinya. Anda bukan sahaja akan cara ia dilaksanakan, tetapi dalam Pilihan Lanjutan anda akan melihat pembolehubah env yang telah ditetapkan.

Anda juga boleh mengedit konfigurasi ini secara terus, tetapi saya tidak semestinya mengesyorkannya di sini.

Menjalankannya

Jika semuanya berjalan lancar apabila anda menggunakan Apl Desktop, anda sepatutnya tidak melihat ralat (jika anda melakukannya, pergi ke Tetapan akan memberi anda butang untuk menyemak log dan menyiasat dari sana).

Building a Model Context Protocol Server using Jina.ai and FastMCP in Python

Selain itu, anda harus melihat simbol tukul dengan bilangan alatan individu yang anda miliki (nota: anda mungkin perlu dua melainkan anda telah memasang pelayan MCP lain)

Daripada menggunakan alat secara terus, anda bersembang dengan apl seperti biasa, dan apabila ia menghadapi situasi di mana ia menyimpulkan bahawa alat itu membantu ia akan bertanya sama ada anda mahu menggunakannya. Tiada kod atau konfigurasi tambahan di sini diperlukan.

Saya fikir ia bergantung pada kedua-dua nama alat dan huraian untuk menentukan sama ada ia sesuai, jadi ia berbaloi untuk membuat penerangan ringkas yang jelas tentang perkara yang alat itu lakukan.

Anda akan mendapat gesaan seperti berikut:

Building a Model Context Protocol Server using Jina.ai and FastMCP in Python

Dan anda hanya boleh "berbual" dengannya, memanglah alat seperti yang ditulis kadangkala menghadapi masalah. Kadangkala ia memutuskan bahawa ia tidak boleh mengakses internet, kadangkala ia gagal mendapatkan hasil, tetapi kadangkala anda mendapat ini:

Building a Model Context Protocol Server using Jina.ai and FastMCP in Python

Ini mempunyai aliran semula jadi, di mana ia membaca halaman, memberikan ringkasan, dan anda memintanya pergi ke artikel tertentu dan membacanya.

Nota Akhir

Mudah-mudahan ini memberi anda sedikit cerapan tentang Pelayan MCP. Terdapat banyak untuk dibaca dan ditonton tetapi satu lagi tapak yang saya akan cadangkan ialah glama.ai mereka menyimpan senarai yang agak komprehensif bagi Pelayan MCP yang tersedia untuk dimuat turun dan dicuba, termasuk alat carian web lain yang lebih dipercayai daripada contoh mainan kami. Tontonnya dan terima kasih kerana mengikuti bersama.

Atas ialah kandungan terperinci Membina Pelayan Protokol Konteks Model menggunakan Jina.ai dan FastMCP dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Python vs C: Memahami perbezaan utamaPython vs C: Memahami perbezaan utamaApr 21, 2025 am 12:18 AM

Python dan C masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1) Python sesuai untuk pembangunan pesat dan pemprosesan data kerana sintaks ringkas dan menaip dinamik. 2) C sesuai untuk prestasi tinggi dan pengaturcaraan sistem kerana menaip statik dan pengurusan memori manual.

Python vs C: Bahasa mana yang harus dipilih untuk projek anda?Python vs C: Bahasa mana yang harus dipilih untuk projek anda?Apr 21, 2025 am 12:17 AM

Memilih Python atau C bergantung kepada keperluan projek: 1) Jika anda memerlukan pembangunan pesat, pemprosesan data dan reka bentuk prototaip, pilih Python; 2) Jika anda memerlukan prestasi tinggi, latensi rendah dan kawalan perkakasan yang rapat, pilih C.

Mencapai matlamat python anda: kekuatan 2 jam sehariMencapai matlamat python anda: kekuatan 2 jam sehariApr 20, 2025 am 12:21 AM

Dengan melabur 2 jam pembelajaran python setiap hari, anda dapat meningkatkan kemahiran pengaturcaraan anda dengan berkesan. 1. Ketahui Pengetahuan Baru: Baca dokumen atau tutorial menonton. 2. Amalan: Tulis kod dan latihan lengkap. 3. Kajian: Menyatukan kandungan yang telah anda pelajari. 4. Amalan Projek: Sapukan apa yang telah anda pelajari dalam projek sebenar. Pelan pembelajaran berstruktur seperti ini dapat membantu anda menguasai Python secara sistematik dan mencapai matlamat kerjaya.

Memaksimumkan 2 Jam: Strategi Pembelajaran Python BerkesanMemaksimumkan 2 Jam: Strategi Pembelajaran Python BerkesanApr 20, 2025 am 12:20 AM

Kaedah untuk belajar python dengan cekap dalam masa dua jam termasuk: 1. Semak pengetahuan asas dan pastikan anda sudah biasa dengan pemasangan Python dan sintaks asas; 2. Memahami konsep teras python, seperti pembolehubah, senarai, fungsi, dan lain -lain; 3. Menguasai penggunaan asas dan lanjutan dengan menggunakan contoh; 4. Belajar kesilapan biasa dan teknik debugging; 5. Memohon pengoptimuman prestasi dan amalan terbaik, seperti menggunakan komprehensif senarai dan mengikuti panduan gaya PEP8.

Memilih antara python dan c: bahasa yang sesuai untuk andaMemilih antara python dan c: bahasa yang sesuai untuk andaApr 20, 2025 am 12:20 AM

Python sesuai untuk pemula dan sains data, dan C sesuai untuk pengaturcaraan sistem dan pembangunan permainan. 1. Python adalah mudah dan mudah digunakan, sesuai untuk sains data dan pembangunan web. 2.C menyediakan prestasi dan kawalan yang tinggi, sesuai untuk pembangunan permainan dan pengaturcaraan sistem. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Python vs C: Analisis perbandingan bahasa pengaturcaraanPython vs C: Analisis perbandingan bahasa pengaturcaraanApr 20, 2025 am 12:14 AM

Python lebih sesuai untuk sains data dan perkembangan pesat, manakala C lebih sesuai untuk prestasi tinggi dan pengaturcaraan sistem. 1. Sintaks Python adalah ringkas dan mudah dipelajari, sesuai untuk pemprosesan data dan pengkomputeran saintifik. 2.C mempunyai sintaks kompleks tetapi prestasi yang sangat baik dan sering digunakan dalam pembangunan permainan dan pengaturcaraan sistem.

2 jam sehari: potensi pembelajaran python2 jam sehari: potensi pembelajaran pythonApr 20, 2025 am 12:14 AM

Adalah mungkin untuk melabur dua jam sehari untuk belajar Python. 1. Belajar Pengetahuan Baru: Ketahui konsep baru dalam satu jam, seperti senarai dan kamus. 2. Amalan dan Amalan: Gunakan satu jam untuk melakukan latihan pengaturcaraan, seperti menulis program kecil. Melalui perancangan dan ketekunan yang munasabah, anda boleh menguasai konsep teras Python dalam masa yang singkat.

Python vs C: Lengkung pembelajaran dan kemudahan penggunaanPython vs C: Lengkung pembelajaran dan kemudahan penggunaanApr 19, 2025 am 12:20 AM

Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!