Skip to main content

CodeLlama - 代码填充

本教程展示了如何调用托管在 Huggingface PRO Inference Endpoints 上的 CodeLlama 来填充代码。

这是一个专门针对代码模型的任务。模型经过训练,能够生成最匹配现有前缀和后缀的代码(包括注释)。

此任务适用于 7B13B CodeLlama 模型的基础变体和指令变体。不适用于任何 34B 模型或 Python 版本。

用法

import os
from litellm import longer_context_model_fallback_dict, ContextWindowExceededError, completion

os.environ["HUGGINGFACE_API_KEY"] = "your-hf-token" # https://huggingface.co/docs/hub/security-tokens

## 创建提示
prompt_prefix = 'def remove_non_ascii(s: str) -> str:\n """ '
prompt_suffix = "\n return result"

### 设置 <pre> <suf> 以指示你希望 codellama 填充的部分之前和之后的字符串
prompt = f"<PRE> {prompt_prefix} <SUF>{prompt_suffix} <MID>"

messages = [{"content": prompt, "role": "user"}]
model = "huggingface/codellama/CodeLlama-34b-Instruct-hf" # 指定 huggingface 作为提供者 'huggingface/'
response = completion(model=model, messages=messages, max_tokens=500)

输出

def remove_non_ascii(s: str) -> str:
""" 移除字符串中的非 ASCII 字符。

参数:
s (str): 要移除非 ASCII 字符的字符串。

返回:
str: 移除非 ASCII 字符后的字符串。
"""
result = ""
for c in s:
if ord(c) < 128:
result += c
return result