--- 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) ```