langchain自定义提示词模版

80 阅读1分钟
from langchain_core.prompts import StringPromptTemplate


# 定义一个简单的函数作为示例效果
def hello_world(abc):
    print("Hello, world!")
    return abc

PROMPT = """\
你是一个非常有经验和天赋的程序员,现在给你如下函数名称,你会按照如下格式,输出这段代码的名称、源代码、中文解释。
函数名称: {function_name}
源代码:
{source_code}
代码解释:
"""

import inspect

def get_source_code(function_name):
    #获得源代码
    return inspect.getsource(function_name)


#自定义模版
class CustomPromptTemplate(StringPromptTemplate):
    def format(self, **kwargs) -> str:
        # 获取函数名称
        function_name = kwargs.get("function_name")
        # 获取源代码
        source_code = get_source_code(function_name)
        # 填充模版
        return PROMPT.format(function_name=function_name, source_code=source_code)


a = CustomPromptTemplate(input_variables=["function_name"])
pm = a.format(function_name=hello_world)

print(pm)


from langchain_openai import OpenAI

llm = OpenAI(
    model="gpt-3.5-turbo-instruct",
    temperature=0,
)

msg = llm.invoke(pm)
print(msg)