写一个小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的和。
```