写一个小dome,我们来使用自定义提示词模板:
代码实现功能为:让大模型给函数生成说明
from qifan_ai import CreateMyLLM from langchain.prompts import StringPromptTemplate import inspect
def hello_add(x,y): z=x+y return z str_prompt="""\ 你是一个非常有经验的Python开发工程师。现在给你如下函数名称,你会按照如下格式,输出函数名称、源代码、中文注释。 函数名称:{function_name} 源代码: {function_source} 中文注释: """ class FunctionPromptTemplate(StringPromptTemplate): def format(self,function_name): source=inspect.getsource(function_name) prompt=str_prompt.format( function_name=function_name.__name__, function_source=source ) return prompt model=CreateMyLLM() prompt=FunctionPromptTemplate(input_variables=["function_name"]) p=prompt.format(function_name=hello_add) print(p) #res=model.predict(p) chain=prompt|model res=chain.invoke({"function_name":hello_add}) print(res.content)
运行输出结果为:
函数名称:hello_add 源代码: ```python def hello_add(x, y): z = x + y return z ``` 中文注释: 该函数名为`hello_add`,但实际上与"hello"并无直接关联,更准确的命名可能是`add`或`sum`等。从给定的源代码可以看出,此函数的功能是接收两个参数`x`和`y`,然后将它们相加,并将结果存储在变量`z`中,最后返回这个结果。 中文注释如下: ``` # 函数名称:hello_add(实际上与“hello”无关,更准确的命名可能是add或sum等) # 功能描述:该函数接受两个参数x和y,将它们相加,并返回相加的结果。 # 参数说明:x, y为需要相加的数值。 # 返回值:返回x和y的和。 ```