Yeqa uye kokuyinhloko
Izifundo ze-AI

Khipha futhi Ujwayeze Izingxoxo Zakho Zomsizi Wokubhala Ikhodi we-AI nge-Python

Funda ukusebenzisa Ukukhishwa Kwedatha Yomsizi Wokubhala Ikhodi we-AI ukuze uthole umlando wezingxoxo ogcinwe endaweni ovela ku-Claude Code, Codex CLI, Cursor, Windsurf, Trae, Continue, Gemini CLI, OpenCode, Cline, Roo Code, naku-Aider, bese uwuguqula ube yi-JSONL ejwayelekile ukuze wenze ikhophi eyisipele, uhlaziye noma uqeqeshe.

Khipha futhi Ujwayeze Izingxoxo Zomsizi Wokubhala Ikhodi we-AI nge-Python

Okwenziwa yile phrojekthi

I-AI Coding Assistant Data Extraction iqoqa izingxoxo ezigcinwe endaweni yakho ezivela kubasizi bokubhala amakhodi abaningi, bese izibhala ngendlela ehambisanayo ye-JSONL. Iwusizo ekwenzeni ikhophi eyisipele yomlando wezingxoxo, ekuhlaziyeni idatha yomuntu siqu, ekulungiseleleni idatha yokuqeqesha kahle, noma ekulondolozeni izingxoxo ngaphambi kokuba uhlelo lusule isizindalwazi salo sendawo.

Leli thuluzi lithola ngokuzenzakalelayo izindawo zokugcina ku-macOS, Linux, naku-Windows. Lingafunda amafayela e-JSONL, amafayela eseshini e-JSON, imibhalo ye-Markdown, izizindalwazi ze-SQLite, nezihlahla zokugcina ze-JSON ezinezendlalelo eziningi ngaphandle kokudinga okuncikile kwe-Python okuvela kwabanye.

Imithombo esekelwayo

Le phrojekthi okwamanje isekela la mathuluzi alandelayo:

  • Claude Code: Amafayela eseshini e-JSONL ngaphansi kwe-~/.claude/projects/.
  • Codex CLI: Amafayela e-rollout e-JSONL ngaphansi kwe-~/.codex/sessions/.
  • Cursor: Amafayela e-SQLite state.vscdb ekugcinweni komhlaba wonke nokwendawo yokusebenza.
  • Windsurf: Ukugcinwa kwe-SQLite okuhlaziywa kusetshenziswa indlela ye-heuristic ezama okusemandleni ayo.
  • Trae: Ukugcinwa kwe-SQLite ne-JSONL okuhlaziywa kusetshenziswa indlela ye-heuristic ezama okusemandleni ayo.
  • Continue: Amafayela e-JSON ku-~/.continue/sessions/.
  • Gemini CLI: Amafayela ezingxoxo e-JSON ngaphansi kwe-~/.gemini/tmp/.
  • OpenCode: Izihlahla zamaseshini, imiyalezo, nezingxenye eziku-JSON.
  • Cline ne-Roo Code: Amafolda emisebenzi e-JSON agcinwa yisandiso somhleli.
  • Aider: Imibhalo ye-Markdown ebizwa ngokuthi .aider.chat.history.md ngaphakathi kwamafolda amaphrojekthi.

Ukufaka nokulungiselela

Yenza i-clone noma ulande i-repository, bese usebenzisa imibhalo yayo usuka empandeni yephrojekthi. I-extractor isebenzisa kuphela umtapo wolwazi ojwayelekile we-Python. Kudingeka i-Python 3.9 noma entsha, kanti kunconywa i-Python 3.10 noma entsha.

python --version

Akudingeki indawo ebonakalayo noma ukufakwa kokuncika kwephrojekthi ukuze kusetshenziswe i-extractor eyinhloko. Ngaphambi kokukhipha, qinisekisa ukuthi amathuluzi afanele okubhala amakhodi ngosizo lwe-AI ake asetshenziswa emshinini, ukuze kube khona amafayela ezingxoxo noma izizindalwazi zendawo.

Qalisa ukukhipha kwakho kokuqala

Ukuze usebenzise indlela esebenzisanayo, sebenzisa umbhalo oyinhloko ngaphandle kwama-agumenti. Ubonisa imenyu enezinombolo ukuze ukhethe imithombo ozoyikhipha.

python extract.py

Ukuze ukhiphe yonke imithombo esekelwayo ngaphandle kwemiyalelo, sebenzisa i---all.

python extract.py --all

Ungakhetha futhi imithombo ethile ngohlu oluhlukaniswe ngamakhoma. Ama-ID emithombo aboniswa etafuleni lemithombo le-repository noma ngokusebenzisa i---list.

python extract.py --sources cursor,claude_code,aider

Ukuze ubone ukuthi yikuphi ukufakwa okutholakele ngaphandle kokukhipha izingxoxo, sebenzisa:

python extract.py --list

Isinqamuleli se-shell esifakiwe senza ukukhipha kuyo yonke imithombo ezinhlelweni lapho sitholakala khona:

./extract_all.sh

Khetha izindlela zokukhipha nokusesha

Ngokuzenzakalelayo, amafayela e-JSONL anesitembu sesikhathi abhalwa ku-./extracted_data. Sebenzisa i---output-dir ukukhetha indawo ehlukile.

python extract.py --all --output-dir ./chat-backup

Amathuluzi amaningi anamafolda edatha yohlelo abikezelwayo, ngakho i-extractor isesha ngokuzenzakalelayo izindawo ezivamile zezinhlelo zokusebenza. I-Aider yehlukile: igcina umbhalo owodwa we-Markdown ngaphakathi kwefolda yephrojekthi ngayinye esikhundleni sokusebenzisa ifolda emaphakathi yedatha yohlelo lokusebenza.

Sebenzisa inketho eyodwa noma eziningi ze---search-path lapho amaphrojekthi akho noma idatha yohlelo lokusebenza ikwezinye izindawo ezingaphandle kwezivamile.

python extract.py --sources aider \
  --search-path ~/client-work \
  --search-path /mnt/data/repos

Izindlela ezengeziwe zokusesha ziwusizo nasekufakweni okungajwayelekile kwamanye amathuluzi asekelwayo.

Hlanganisa izingxoxo zibe ifayela elilodwa

Umthombo ngamunye okhethiwe ngokuvamile uthola ifayela lawo lokukhipha elinesitembu sesikhathi. Engeza i---merge ukuze uhlanganise nazo zonke izingxoxo ezikhishiwe zibe yi-all_conversations.jsonl.

python extract.py --all --merge

Ifolda evamile yokukhipha ingase iqukathe amafayela afana nala:

extracted_data/
├── claude_code_conversations_20260816_143022.jsonl
├── cursor_conversations_20260816_143022.jsonl
├── aider_conversations_20260816_143022.jsonl
├── cline_conversations_20260816_143022.jsonl
└── all_conversations.jsonl

Qonda indlela ehleliwe

Umugqa ngamunye osefayilini lokukhipha umele ingxoxo eyodwa. Isakhiwo esivamile sihlanganisa uhlu lwe-messages, isihlonzi se-source, kanye ne-session_id. Ezinye izinkambu zincike kulokho okurekhodwe yithuluzi lokuqala.

{
  "messages": [
    {
      "role": "user",
      "content": "Ngingalilungisa kanjani leli phutha le-TypeScript?",
      "code_context": [
        {
          "file": "/Users/you/project/index.ts",
          "code": "const x: string = 123;"
        }
      ],
      "timestamp": "2026-01-16T14:30:22Z"
    },
    {
      "role": "assistant",
      "content": "Iphutha lenzeka ngoba inombolo inikezwa uhlobo lwe-string.",
      "tool_use": [
        {
          "name": "edit_file",
          "input": {"path": "src/index.ts"}
        }
      ],
      "timestamp": "2026-01-16T14:30:25Z"
    }
  ],
  "source": "cursor-composer",
  "session_id": "c1a2b3...",
  "project_path": "/Users/you/project",
  "name": "Ukulungisa Iphutha Lohlu lwe-TypeScript",
  "created_at": 1705414222000
}

Izinkambu ezifana ne-code_context, ukusetshenziswa kwamathokheni, izindlela zamaphrojekthi, izitembu zesikhathi, izingcingo zamathuluzi, nama-diff zifakwa lapho umthombo uzigcina. Izinkambu ongathembela kuzo ngokungaguquki yi-messages, source, ne-session_id.

Indlela okukhipha okusebenza ngayo

  1. Uhlelo luthola isistimu yokusebenza bese lwakha uhlu lwezimpande zedatha okungenzeka zisetshenziswe, okuhlanganisa izindawo ezifana ne-Application Support, .config, .local/share, %APPDATA%, kanye ne-%LOCALAPPDATA%.
  2. Umthombo ngamunye usesha lezo zimpande ukuze uthole amagama awo aziwayo amafolda namafayela.
  3. Isifundi esifanele silayisha isitoreji se-JSONL, JSON, SQLite, Markdown, noma i-JSON esidleke ngaphakathi kwenye.
  4. Isikhiphi silungisa amarekhodi atholiwe abe yisikimu semilayezo esabiwe.
  5. Amafayela e-JSONL anesitempampu sesikhathi abhalwa kuhla lokuphumayo.

Amadathabheyisi e-SQLite avulwa ngemodi yokufunda kuphela, okusiza ukugwema ukuvimba umhleli osebenzayo. Izifundi nazo zihlukanisiwe ukuze ifayela elonakele noma elikhiyiwe likhiqize imiphumela engaphelele esikhundleni sokumisa yonke inqubo yokukhipha.

Phatha amafomethi esitoreji angabhaliwe

I-Cursor, i-Windsurf, ne-Trae azishicileli izikimu zesitoreji ezizinzile. Isikhiphi se-Cursor siphatha ngokusobala izinhlobo eziningana ezaziwayo, okuhlanganisa ingxoxo ye-ItemTable yendawo yokusebenza, idatha ye-inline composer, nedatha ye-composer ehlukaniswe nge-bubbleId.

I-Windsurf ne-Trae zisebenzisa indlela ejwayelekile esekelwe kuma-heuristic ku-extractors/common.py. Icinga okhiye abahlobene nezingxoxo bese ihamba ku-JSON ehlukanisiwe ifuna izinto ezifana namapheya emilayezo anendima nombhalo. Lokhu kwenzelwe ukusebenza ngokusemandleni. Uma isibuyekezo esizayo sohlelo lokusebenza sishintsha ukwakheka kwesitoreji, amanani afanele e-KEY_HINTS angase adinge ukubuyekezwa.

Sebenzisa okuphumayo kudatha yokuqeqesha

Amafayela e-JSONL alungisiwe angalayishwa kusetshenziswa umtapo we-Hugging Face datasets. Isibonelo esilandelayo silayisha wonke amafayela akhishiwe, sigcine izingxoxo eziqukethe imilayezo yomsizi, bese sizifometha sisebenzisa ithempulethi yezingxoxo ye-tokenizer.

from datasets import load_dataset

dataset = load_dataset(
    "json",
    data_files="extracted_data/*.jsonl",
    split="train"
)
dataset = dataset.filter(
    lambda x: any(m["role"] == "assistant" for m in x["messages"])
)

def format_chat(example):
    return {
        "text": tokenizer.apply_chat_template(
            example["messages"],
            tokenize=False
        )
    }

dataset = dataset.map(format_chat)

Hlola futhi uguqule amarekhodi ngokwezidingo zemodeli yakho. Imithombo ehlukene ingaqukatha izinkambu ozikhethela ezahlukene, ngakho amapayipi okuqeqesha kufanele ancike kakhulu esakhiweni semilayezo esabiwe.

Nweba isikhiphi ngomthombo omusha

Isikhiphi somthombo ngamunye silandela isixhumi esibonakalayo esincane esinemisebenzi emibili. Ukukopisha i-continue_ext.py kunikeza indawo elula yokuqala.

DISPLAY_NAME = "My Tool"
SOURCE_ID = "my_tool"

def find_installations(extra_paths: list[Path] | None = None) -> list[Path]:
    """Return directories or files worth scanning."""

def extract(installations: list[Path]) -> list[dict]:
    """Return normalized conversation dictionaries."""

Ngemva kokudala imojuli, yibhalise ohlwini lwe-REGISTRY ku-extract.py. Izifundi ezabiwe nama-heuristic ajwayelekile ayatholakala ku-extractors/common.py.

Vikela idatha yezingxoxo ebucayi

Imilando yezingxoxo yasendaweni ingaqukatha okhiye be-API, ikhodi yobunikazi, izindlela zomuntu siqu, ulwazi lwamakhasimende, kanye nokufakwayo kwamathuluzi. Buyekeza amafayela akhishiwe ngaphambi kokuwabelana noma ukuwasebenzisela ukuqeqesha.

  1. Skena okuphumayo ukuze uthole izimfihlo.
  2. Buyekeza ngokucophelela izinkambu ze-code_context ne-tool_use.
  3. Ungafaki i-extracted_data/ endaweni yokugcina yomphakathi.
  4. Gcina amakhophi ayisipele abucayi kusitoreji esibethelwe.
pip install detect-secrets --break-system-packages
detect-secrets scan extracted_data/*.jsonl

Iphrojekthi ifaka i-extracted_data/ ku-.gitignore, kodwa kusafanele uqinisekise izinqubo zakho zendawo yokugcina kanye namakhophi ayisipele ngaphambi kokushicilela noma yini.

Ukuxazulula izinkinga

Akukho ukufakwa okutholakele

Ithuluzi kungenzeka lingafakiwe, lingabi nawo umlando wengxoxo ogciniwe, noma lisebenzise indawo engajwayelekile. Qala ngokusebenzisa i---list, bese unikeza uhla lwemibhalo olufanele nge---search-path. Ungahlola futhi okuguquguqukayo kwe-SEARCH_DIRS noma APP_DIR_NAMES kusikhiphi somthombo.

I-Cursor noma i-Windsurf ibika ukuthi idathabheyisi ikhiyiwe

Izikhiphi zisebenzisa ukuxhumana kwe-SQLite kokufunda kuphela, ngakho uhlelo lokusebenza olusebenzayo ngokuvamile ngeke luvimbe ukukhishwa. Uma amaphutha eqhubeka, vala uhlelo lokusebenza bese uphinda ukusebenzisa ukukhishwa.

I-Windsurf noma i-Trae ikhiqiza izingxoxo eziyiziro

Qinisekisa ukuthi uhla lwemibhalo lohlelo lokusebenza lutholakele nge---list. Uma lutholakele kodwa kungekho zingxoxo ezikhishiwe, hlola okhiye abafanele be-state.vscdb bese wengeza amaphethini ahambisanayo ku-KEY_HINTS kusikhiphi esifanele.

Isiphetho

I-AI Coding Assistant Data Extraction ikunikeza indlela engadingi zincikezi yokugcina nokulungisa izingxoxo zasendaweni zokubhala ikhodi kuwo wonke amafomethi esitoreji nezinhlelo zokusebenza eziningi. Qala nge-python extract.py --list, khetha imithombo oyidingayo, hlola i-JSONL ekhiqiziwe ukuze uthole ulwazi olubucayi, bese usebenzisa amarekhodi alungisiwe ukwenza amakhophi ayisipele, ukuhlaziya, noma izinqubo zokuqeqesha ezilungiselelwe ngokucophelela.

Leli thuluzi lenzelwe idatha yamathuluzi e-AI afakwe emshinini wakho. Unesibopho sokuqinisekisa ukuthi unamalungelo okukhipha idatha, ukuvikela ulwazi olubucayi, ukuthobela imigomo yethuluzi ngalinye, kanye nokuskena izimfihlo ngaphambi kokwabelana ngemiphumela noma ukuyisebenzisela ukuqeqesha.