readme: ---
  license: apache-2.0
  widget:
  - text: "<|endoftext|>\ndef load_excel(path):\n    return pd.read_excel(path)\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 python
  
  ## Usage
  
  ```python
  from transformers import AutoTokenizer, AutoModelForCausalLM
  
  model_type = 'kdf/python-docstring-generation'
  tokenizer = AutoTokenizer.from_pretrained(model_type)
  model = AutoModelForCausalLM.from_pretrained(model_type)
  
  inputs = tokenizer('''<|endoftext|>
  def load_excel(path):
      return pd.read_excel(path)
  
  # 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|>
  def add(a, b):
      return a + b
  
  # docstring
  """
      Calculate numbers add.
  
      Args:
          a: the first number to add
          b: the second number to add
  
      Return:
          The result of a + b
  """
  <|endoftext|>
  def load_excel(path):
      return pd.read_excel(path)
  
  # 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|>
  def add(a, b):
      return a + b
  
  # docstring
  """
      计算数字相加
  
      Args:
          a: 第一个加数
          b: 第二个加数
  
      Return:
          相加的结果
  """
  <|endoftext|>
  def load_excel(path):
      return pd.read_excel(path)
  
  # 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)
  ```