readme: ---
  license: apache-2.0
  widget:
  - text: "<|endoftext|>\nfunction getDateAfterNDay(n){\n    return moment().add(n, 'day')\n}\n// docstring\n/**"
  ---
  
  ## Basic info
  
  model based [Salesforce/codegen-350M-mono](https://huggingface.co/Salesforce/codegen-350M-mono)
  
  fine-tuned with data [codeparrot/github-code-clean](https://huggingface.co/datasets/codeparrot/github-code-clean)
  
  data filter by JavaScript and TypeScript
  
  ## Usage
  
  ```python
  from transformers import AutoTokenizer, AutoModelForCausalLM
  
  model_type = 'kdf/javascript-docstring-generation'
  tokenizer = AutoTokenizer.from_pretrained(model_type)
  model = AutoModelForCausalLM.from_pretrained(model_type)
  
  inputs = tokenizer('''<|endoftext|>
  function getDateAfterNDay(n){
      return moment().add(n, 'day')
  }
  
  // docstring
  /**''', return_tensors='pt')
  
  doc_max_length = 128
  
  generated_ids = model.generate(
      **inputs,
      max_length=inputs.input_ids.shape[1] + doc_max_length,
      do_sample=False,
      return_dict_in_generate=True,
      num_return_sequences=1,
      output_scores=True,
      pad_token_id=50256,
      eos_token_id=50256  # <|endoftext|>
  )
  
  ret = tokenizer.decode(generated_ids.sequences[0], skip_special_tokens=False)
  print(ret)
  
  ```
  
  ## Prompt
  
  You could give model a style or a specific language, for example:
  
  ```python
  inputs = tokenizer('''<|endoftext|>
  function add(a, b){
      return a + b;
  }
  // docstring
  /**
    * Calculate number add.
    * @param a {number} the first number to add
    * @param b {number} the second number to add
    * @return the result of a + b
    */
  <|endoftext|>
  function getDateAfterNDay(n){
      return moment().add(n, 'day')
  }
  // docstring
  /**''', return_tensors='pt')
  
  doc_max_length = 128
  
  generated_ids = model.generate(
      **inputs,
      max_length=inputs.input_ids.shape[1] + doc_max_length,
      do_sample=False,
      return_dict_in_generate=True,
      num_return_sequences=1,
      output_scores=True,
      pad_token_id=50256,
      eos_token_id=50256  # <|endoftext|>
  )
  
  ret = tokenizer.decode(generated_ids.sequences[0], skip_special_tokens=False)
  print(ret)
  
  inputs = tokenizer('''<|endoftext|>
  function add(a, b){
      return a + b;
  }
  // docstring
  /**
    * 计算数字相加
    * @param a {number} 第一个加数
    * @param b {number} 第二个加数
    * @return 返回 a + b 的结果
    */
  <|endoftext|>
  function getDateAfterNDay(n){
      return moment().add(n, 'day')
  }
  // docstring
  /**''', return_tensors='pt')
  
  doc_max_length = 128
  
  generated_ids = model.generate(
      **inputs,
      max_length=inputs.input_ids.shape[1] + doc_max_length,
      do_sample=False,
      return_dict_in_generate=True,
      num_return_sequences=1,
      output_scores=True,
      pad_token_id=50256,
      eos_token_id=50256  # <|endoftext|>
  )
  
  ret = tokenizer.decode(generated_ids.sequences[0], skip_special_tokens=False)
  print(ret)
  
  ```