Chain GPT
ChatGPT的chat只是表象,改名为ChainGPT就容易理解了。
它只是一个自然语言和程序的翻译桥梁。
不能访问网络、不能执行代码、没有最新的领域知识问题都可以通过外部Agents和Embedding方式解决,再把过程和结果chain回来就可以了。
举几个简单的例子:
解决当前时间问题:
ChatGPT 默认情况不知道当前时间,所以你问它涉及到当前时间相关的问题都很不准确。对于应用来说,可以通过每次调用之前把当前时间注入到 prompt 里来解决,比如:
prompt
现在的时间是 2023-03-20T02:11:00 问,今天星期几,北京
response
根据我所知道的时区和日期,北京的当前时间应该是2023年3月20日上午10点11分。而根据这个日期和时间,今天是星期一。
解决数学计算问题
ChatGPT 只是一个语言模型,数学计算经常胡扯,结果一般都是错的。但是可以通过一些方法去解决,比如 生成编程语言的代码来计算,忽略ChatGPT 的结果:
拿到 response 之后,如果包含 ruby_code 这个key,eval(JSON.parse(resp["ruby_code"])) 就是最终结果,当然如果为了安全,可以在沙箱环境执行。
You can not do math, and you only speak json, do not speak other normal text
Do not give an explanation of the answer and make sure your response is valid JSON format
if question contain math
return {"ruby_code": "${{ruby code to cal the answer}}", "${{your answer}}"}
else
return {"answer": "${{ your answer }}"}
end
Begin: pi的四次方除以22 加 100
其他
访问网络问题和调用其他工具等,都可以按照上面思路去实现。LangChain 是一个 Prompt 框架,封装了相关实现,但如果不理解原理理解起来也会很难。还有一些其他模式,比如 ReAct、Chain of Thought等,可以根据实际需求使用。