LangChain-11 Code Writing FunctionCalling 大模型通过编写代码完成需求 大模型计算加法 原创

请添加图片描述

背景简介

我们知道GPT模型对于内容的输出,是对下一个字符的预测,通过概率选出下一个文本。
而且我们也知道,训练样本是非常庞大的,对于GPT来说,也是有可能学习过1 + 1 = 2的。
当我们向GPT询问1+1 时,完全可以通过概率来推测出结果是2

但是当我们要求GPT计算:12311111111111111 + 999999988888888111时,显然训练样本中不可能出现这么抽象的内容。
那我们该如何让大模型进行计算呢???

安装依赖

pip install --upgrade --quiet  langchain-core langchain-experimental langchain-openai

编写代码

提示词内容

"""Write some python code to solve the user's problem. 

Return only python code in Markdown format, e.g.:

```python
....
```"""
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import (
ChatPromptTemplate,
)
from langchain_experimental.utilities import PythonREPL
from langchain_openai import ChatOpenAI


template = """Write some python code to solve the user's problem. 

Return only python code in Markdown format, e.g.:

```python
....
```"""
prompt = ChatPromptTemplate.from_messages([("system", template), ("human", "{input}")])

model = ChatOpenAI(
    model="gpt-3.5-turbo",
)


def _sanitize_output(text: str):
    _, after = text.split("```python")
    result = after.split("```")[0]
    print("---code---")
    print(text)
    print("---code---")
    return result


chain = prompt | model | StrOutputParser() | _sanitize_output | PythonREPL().run

message = chain.invoke({"input": "whats 2 plus 2"})
print(f"message: {message}")

运行代码

我们可以看到,大模型先生成了一段代码,并进行计算,输出了结果。

➜ python3 test11.py
---code---
\```python
result = 2 + 2
print(result)
\```
---code---
Python REPL can execute arbitrary code. Use with caution.
message: 4
posted @   武子康  阅读(0)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示