| --- |
| datasets: |
| - CyCraftAI/CyPHER |
| extra_gated_fields: |
| First Name: text |
| Last Name: text |
| Date of birth: date_picker |
| Country: country |
| Affiliation: text |
| Job title: |
| type: select |
| options: |
| - Student |
| - Research Graduate |
| - AI researcher |
| - AI developer/engineer |
| - Reporter |
| - Other |
| geo: ip_location |
| --- |
| |
| # CLinker |
|
|
| The CLinker models are distilled language models specifically designed for command-line graph construction, developed by CyCraft AI Lab. CLinker was instroduced in SINCON 2025, with talk titled "CLINKER — An Efficient Distilled LLM Command Line Graph Constructor". |
|
|
| ## Usage |
| ### Launch openai-compatible server (e.g., vllm) |
| ```bash |
| python3 -m vllm.entrypoints.openai.api_server \ |
| --host 0.0.0.0 \ |
| --port 3000 \ |
| --served-model-name $model_name \ |
| --max-model-len $length \ |
| --api-key $api_key \ |
| --model $model_path |
| ``` |
| ### DSPy inference |
| ```python |
| import dspy |
| |
| # Set dspy module default LM |
| lm = dspy.LM( |
| model=f'openai/{$model_name}', |
| api_key=f'{$api_key}', |
| api_base='http://localhost:3000/v1', |
| model_type='chat', |
| temperature=0.7, |
| max_tokens=4000, |
| cache=False, |
| num_retries=0 |
| ) |
| dspy.configure(lm=lm) |
| ``` |
| ```python |
| from command_parser import CmdlineParser, CoTCmdlineParser |
| from command_extractor import CmdlineExtractor, CoTCmdlineExtractor |
| |
| cmdline = 'echo hello world' |
| |
| # Reasoning model `CLinker-DeepSeek-1.5B` use non-chain-of-thought prompt |
| parser = CmdlineParser() |
| extractor = CmdlineExtractor() |
| # Non-reasoning models are equipped with chain-of-thoughts prompt |
| parser = CoTCmdlineParser() |
| extractor = CoTCmdlineExtractor() |
| |
| # Run inference |
| parser_response = parser(cmdline).toDict() |
| extractor_response = extractor(cmdline).toDict() |
| |
| # Transform Response: pydantic.BaseModel object into dict |
| parser_response['response'] = parser_response['response'].model_dump(mode='json') |
| |
| print(parser_response) |
| print(extractor_response) |
| ``` |
| ### Graph construction |
| ```python |
| from command_graph_builder import build_cmdline_graph |
| |
| graph: nx.DiGraph = build_cmdline_graph(cmdline, parser_response, extractor_response) |
| ``` |