Yeqa uye kokuyinhloko
Izifundo ze-AI

Ukwakha Umkhiqizi Wemibhalo Yothisha Wamazwe Amaningi nge-Yowes ne-MCP

Funda ukufaka i-Yowes, ukuxhuma iseva yayo ye-MCP engenaso isixhumi-sibonisi endaweni yokusebenzisa ama-agent, ukuthola amazwe nezikole ezisekelwayo, nokukhiqiza imibhalo yothisha ye-PNG nge-Python noma ngokushayela amathuluzi ngokuqondile.

Ukwakha Umkhiqizi Wemibhalo Yothisha Wamazwe Amaningi nge-Yowes ne-MCP

Yowes uhlelo lwePython oluphathekayo olwakha imibhalo ehlobene nothisha ibe amafayela e-PNG anokulungiswa okuphezulu. Iseva yayo ye-Model Context Protocol (MCP) esebenza ngaphandle kwesixhumi esibonakalayo iveza ukwakhiwa kwemibhalo nge-stdio, okwenza isetshenziswe ezindaweni ezisebenzisa ama-agent ezifana ne-Claude Desktop, i-Hermes, namanye amaklayenti e-MCP.

Le phrojekthi isekela amazwe angu-13, izinhlobo zemibhalo ezihambisana nezwe ngalinye, amafonti nezithombe zamaphrofayela ezihlanganisiwe, kanye nedatha yezikole equkethe amakheli nemininingwane yokuxhumana. Lesi sifundo sichaza ukufakwa, ukusethwa kweseva, ukusetshenziswa kwamathuluzi e-MCP, ukuhlanganiswa nePython, kanye nezinketho zokwandisa uhlelo.

Okwenziwa yi-Yowes

I-Yowes yakha imibhalo yothisha ehambisana nolimi nesifunda kusuka kuphrofayela kathisha nesikole esikhethiwe. Kuye ngezwe, imiphumela etholakalayo ingafaka izincwadi zokuqashwa, omazisi bothisha, amalayisensi okufundisa, iziliphu zemiholo, omazisi bezikole, izinkontileka, izitifiketi, nezinye izinhlobo zemibhalo.

Amafayela akhiqiziwe agcinwa njengezithombe ze-PNG. Uhlelo luhlanganisa amafonti e-DejaVu Sans nezithombe zamaphrofayela ephaketheni, ngakho aluncikile kumafonti esistimu noma ezimpahleni zezithombe zangaphandle ngesikhathi lusebenza.

Amazwe asekelwayo

Amakhodi amazwe nezinhlobo zemibhalo ezitholakalayo zifaka:

  • United Kingdom: izincwadi zokuqashwa, omazisi bothisha, namalayisensi okufundisa.
  • United States: izincwadi zokuqashwa, omazisi bothisha, namalayisensi okufundisa.
  • France: izitatimende zokufakwa esikhundleni, izithombe-skrini ze-iProf, izingcaphuno zemithetho yangaphakathi, nezitifiketi zokufundisa.
  • Netherlands: izinkontileka zokuqashwa, ukubhaliswa kothisha, izimemezelo ze-DUO, noMazisi bezikole.
  • Indonesia: iziliphu zemiholo, izincwadi zesipiliyoni sokufundisa, amakhadi e-NUPTK, nezincwadi zokuqokwa.
  • Australia: izincwadi zesikole ezisayiniwe, omazisi bezikole, namalayisensi okufundisa.
  • Canada: amakhadi e-OCT, amalayisensi okufundisa, nezincwadi zesikole ezisayiniwe.
  • Spain: omazisi bokufundisa, izincwadi zesikole ezisayiniwe, nezinkontileka zokuqashwa.
  • Argentina: iziliphu zemiholo, izitifiketi zokuqashwa, nezincwadi zesikole ezisayiniwe.
  • Slovakia: iziliphu zemiholo, izincwadi zokuqashwa, nezincwadi zesikole ezisayiniwe.
  • Mexico: omazisi bokufundisa, izincwadi zesikole ezisayiniwe, nezitifiketi zokuqashwa.
  • Philippines: omazisi bokufundisa, izitifiketi zokuqashwa, namalayisensi okufundisa.
  • Thailand: iziliphu zemiholo nezincwadi zokuqashwa.

Sebenzisa le mibhalo kuphela ekuhloleni okusemthethweni, emibonisweni, noma ezinqubweni zokuphatha ezigunyaziwe. Imibhalo ekhiqiziwe akufanele yethulwe njengobufakazi obusemthethweni ngaphandle kokuthi ikhishwe futhi yaqinisekiswa yisikhungo esifanele.

Izidingo

I-Yowes idinga Python 3.10 noma entsha. Okuncike kuyo okuyinhloko, i-Pillow ne-mcp, kufakwa ngokuzenzakalelayo lapho ufaka iphakheji.

Le phrojekthi isekela i-Windows, i-Linux, ne-macOS. Ngenxa yokuthi amafonti nezithombe zihlanganisiwe, uhlelo olupakishiwe lwenzelwe ukuphatheka.

Faka i-Yowes

Faka usebenzisa i-wheel

Uma une-wheel eyakhiwe kumkhombandlela we-dist, yifake ngo:

Umazisi kathisha wase-US

pip install dist/yowes_doc_generator-0.1.0-py3-none-any.whl

Faka usuka kukhodi yomthombo

Ukuze uthuthukise noma uhlole endaweni, faka iphrojekthi ngemodi ehlelekayo:

pip install -e .

Qalisa nge-uv

Ungaqalisa futhi iphrojekthi nge-uv:

uvx --from . yowes-mcp

Qinisekisa izimpahla ezihlanganisiwe

Ngemva kokufaka, hlola ukuthi izisizi zefonti ehlanganisiwe nezithombe zamaphrofayela zisebenza kahle:

python -c "from countries.utils import load_font, get_profile_photo; print(load_font(30).getname()); print(get_profile_photo((280,340), person_id='x', gender='Male') is not None)"

Ukuqalisa ngempumelelo kubonisa ifonti ye-DejaVu Sans bese kubuyisa True kwesithombe sephrofayela esihlanganisiwe.

Xhuma iseva ye-MCP

I-Yowes ixhumana nge-MCP isebenzisa i-stdio. Qalisa umyalo ofakiwe ngo:

yowes-mcp

Ngenye indlela, uma usebenza ngqo esihlahleni somthombo, sebenzisa:

Incwadi yase-US

python mcp_server.py

Inqubo ilinda izicelo ze-MCP kokokufaka okujwayelekile bese ibhala izimpendulo kokukhipha okujwayelekile. Ayiklanyelwe ukusebenza njengohlelo lwetheminali olusebenzisana nomsebenzisi.

Bhalisa i-Yowes kuklayenti le-MCP

Khomba indawo ye-agent ehambisana ne-MCP esebenzisekeni:

{
  "mcpServers": {
    "yowes": {
      "command": "yowes-mcp",
      "args": []
    }
  }
}

Uma umyalo ungatholakali ku-PATH yakho, sebenzisa indlela ephelele eya ku-Python bese ubiza imojuli yeseva:

{
  "mcpServers": {
    "yowes": {
      "command": "/path/to/python",
      "args": ["-m", "mcp_server"]
    }
  }
}

Hlola amathuluzi e-MCP atholakalayo

Iseva inikeza amathuluzi amathathu ayinhloko:

  • list_countries_tool ibala amakhodi amazwe, amagama aboniswayo, nezinhlobo zemibhalo.
  • list_schools(country) ibala izikole zezwe elikhethiwe.
  • generate_documents(...) ikhiqiza idokhumenti eyodwa noma eziningi bese ibuyisa izindlela zamafayela azo.

Bala amazwe

Shayela i-list_countries_tool ngaphandle kwezimpikiswano. Impendulo iqukethe into eyodwa yomphumela ezweni ngalinye, enamanani afana ne-code, name, ne-document_types. Njengoba uhlu luhlukaniswe lwaba yizinto eziningi zokuqukethwe ze-MCP, phindaphinda eqoqweni le-content elibuyisiwe ukuze uhlole wonke amazwe.

Bala izikole

Dlulisela ikhodi yezwe ku-list_schools:

{
  "country": "us"
}

Umazisi kathisha wase-UK

Umphumela ngamunye wesikole ungafaka igama laso, ikheli, idolobha, ikhodi yeposi, isifundazwe, inombolo yocingo, kanye nemininingwane yesiphathimandla semfundo sendawo. Sebenzisa igama lesikole eliphelele noma eliyingxenye elibuyiswe yileli thuluzi lapho udala amadokhumenti.

Dala Amadokhumenti

Ithuluzi elithi generate_documents lidinga izwe, igama likathisha, isikole, isikhundla, kanye nosuku lokuzalwa. Ngokuzikhethela ungakhetha ubulili, izinhlobo zamadokhumenti, kanye nohlu lokuphumayo.

Isicelo sesibonelo

{
  "country": "us",
  "first_name": "John",
  "last_name": "Smith",
  "school_name": "Valley High",
  "position": "Head of Science Department",
  "date_of_birth": "12/05/1988",
  "gender": "Male",
  "document_types": ["employment_letter", "teacher_id"],
  "output_dir": "output"
}

Inani le-gender lingaba ngu-Random, Male, noma Female. Lilawula ukukhethwa echibini lezithombe zephrofayela elihlanganisiwe. Uma document_types ingafakwanga, i-Yowes ikhiqiza zonke izinhlobo zamadokhumenti ezitholakalayo zezwe elikhethiwe. Uhla lokuphumayo oluzenzakalelayo ngu-output/.

Impendulo ephumelele ifaka izwe nesikole okukhethiwe, izinhlobo zamadokhumenti, izindlela zamafayela akhiqiziwe, isibalo, kanye nohlu lokuphumayo. Izindlela ze-PNG ezibuyiswayo ziyizindlela eziphelele.

Isibonelo, amadokhumenti ase-US akhiqiziwe angafana nemiphumela eyisibonelo elandelayo:

Umazisi kathisha wase-USIncwadi yokuqashwa yase-US

Sebenzisa i-Yowes usebenzisa i-Python

Izinhlelo zingaqalisa iseva ye-MCP futhi zibize amathuluzi ayo ngeklayenti le-Python MCP. Faka okuncikile kweklayenti uma kudingeka:

pip install mcp

Isibonelo esilandelayo siqalisa iseshini ye-stdio, sibala amazwe, futhi sakha amadokhumenti ase-US:

import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def main():
    params = StdioServerParameters(command="yowes-mcp", args=[])
    async with stdio_client(params) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()

            countries = await session.call_tool(
                "list_countries_tool", {}
            )
            for item in countries.content:
                print(item.text)

            result = await session.call_tool(
                "generate_documents",
                {
                    "country": "us",
                    "first_name": "John",
                    "last_name": "Smith",
                    "school_name": "Valley High",
                    "position": "Head of Science Department",
                    "date_of_birth": "12/05/1988",
                    "gender": "Male"
                }
            )
            print(result.content[0].text)

asyncio.run(main())

Ngenxa yokuthi izimpendulo zohlu zihlukaniswe zaba izinto zokuqukethwe ngazinye, hlola yonke into eku-countries.content kunokucabanga ukuthi lonke uhlu luvela enanini elilodwa lempendulo.

Ukugeleza Komsebenzi Okusebenzayo Kwe-Agent

Incwadi yase-UK

  1. Biza i-list_countries_tool ukuze uthole amakhodi amazwe avumelekile nezinhlobo zamadokhumenti.
  2. Biza i-list_schools usebenzisa ikhodi yezwe ekhethiwe.
  3. Khetha isikole kudatha ebuyisiwe.
  4. Biza i-generate_documents usebenzisa imininingwane egunyaziwe kathisha nesikole.
  5. Funda izindlela ze-PNG ezibuyisiwe bese ucubungula amafayela kuhlelo lwakho.

Lokhu kulandelana kugwema ukuqagela amakhodi amazwe, amagama ezikole, noma izihlonzi zezinhlobo zamadokhumenti.

Amathiphu Athuthukile

Khetha okuphumayo okudingekayo kuphela

Dlulisa uhlu lwe-document_types lapho udinga ingxenye yamadokhumenti atholakalayo ezweni. Lokhu kunciphisa ukunikezwa okungadingekile futhi kugcina uhlu lokuphumayo lugxile kumafayela aceliwe.

Khetha isithombe sephrofayela esizinzile

I-Yowes isebenzisa ukukhetha okusekelwe ku-hashi ukuze igcine izithombe zephrofayela zifana kumuntu ofanayo. Ukunikeza ubuwena bomuntu obuzinzile nobulili obucacile kusiza ukukhiqiza imiphumela ebikezelwayo ngenkathi kukhethwa echibini lezithombe elihambisanayo.

Sebenzisa uhlu lokuphumayo olwenziwe ngokwezifiso

Setha i-output_dir ukuze uhlele izithombe ezikhiqiziwe ngokwephrojekthi, ukuqhutshwa kokuhlola, noma izwe. Izindlela ezihlobene zixazululwa ngokususelwa kuhlu lokusebenza lweseva ye-MCP.

Qalisa i-GUI yakudala lapho kudingeka

Iphrojekthi iphinde ifake isixhumi esibonakalayo esikhethekile se-CustomTkinter esabelana ngomqondo oyinhloko wokukhiqiza:

python main_gui.py

Kuma-Windows, indawo yokugcina iphinde inikeze i-run.bat, esetha i-TCL_LIBRARY. Iseva ye-MCP isalokhu iyisixhumi esiyinhloko esisebenza ngaphandle kwe-GUI futhi ayincikile kuyo.

Nweba i-Yowes Ngezwe Elisha

Ukuze ungeze izwe, dala i-countries/<code>/__init__.py bese uchaza ikilasi elizuza ku-countries.base.CountryGenerator. Sebenzisa izindlela ezidingekayo:

  • get_country_name
  • get_country_code
  • get_schools_data
  • get_first_names
  • get_last_names
  • get_positions
  • get_document_types
  • generate_document

Bhalisa i-generator ku-countries/__init__.py usebenzisa i-register_country("<code>", <Name>Generator). Uma isibhalisiwe, amathuluzi e-MCP amazwe nezikole angayithola ngokuzenzakalelayo. Uma i-GUI kufanele ibonise ilebula yangokwezifiso, buyekeza umqondo wohlu lwamazwe nowokushintsha izwe ku-main_gui.py.

Isiphetho

I-Yowes ihlanganisa abakhiqizi bamadokhumenti abaqondene namazwe, izimpahla ezihlanganisiwe, kanye neseva ye-MCP stdio ibe ukugeleza komsebenzi okuphathekayo. Yifake nge-Python, thola amazwe nezikole ezitholakalayo nge-MCP, khiqiza okukhiphayo okukhethiwe kwe-PNG, bese uhlanganisa le nqubo ku-agent noma kuhlelo lwe-Python. Ekuthuthukiseni nasekuhloleni okusemthethweni, iphethini yayo yokubhalisa amazwe iphinde inikeze indlela ecacile yokwengeza abakhiqizi abasha.