• 智能
    2023-04-11 来自北京
    这种链式调用是不是很容易让问题超过token限制,有没有什么办法来自动解决这个问题

    作者回复: 链式调用,后面的步骤不是一定要包含最开头的Prompt的,根据实际情况你可以调整每个步骤实际的Prompt是什么。 目前其实Azure已经有32K Token的gpt-4-32k了,虽然贵一些。但是如果是拿来干写代码这种高价值任务我觉得还是划得来的。

    共 3 条评论
    7
  • 意
    2023-04-11 来自广东
    老师好,看到LangChain获得1000万美元种子轮融资的新闻。 想问下:像LangChain这种开源的产品,商业模式是怎么样的,投资机构是看中了哪点进行投资的。

    作者回复: 一般都是会提供企业版来获得收入。 1. 企业版本的特有功能,比如更好的管理面板界面等等 2. 提供开源版本,也提供云端版本。云端版本托管或者按照使用量来收费 3. 给500强大企业做私有化部署、服务来收费 看中什么具体我也不知道,但是的确Langchain是现在Hacker们用得最多的一个开发框架,有用户有开发者就有可能性和未来。

    
    3
  • 一叶
    2023-04-11 来自福建
    老师我的想问下,国内使用Pinecone的效率如何? 会不会受到网络的影响?

    作者回复: 国内应用的话,自己部署一个postgres + pgvector 插件吧,大部分云平台应该都支持 postgres

    
    1
  • 厚积薄发
    2023-05-11 来自德国
    支持多个变量输入的链式调用 这个案例 多运行几次,最后的数据结果,每次都不一样 其中一次是这个‘波尔图更多,他们获得过4次欧冠冠军,而西班牙皇家马德里只获得过3次欧冠冠军。 ’ 老师,知道这个是什么原因吗?

    作者回复: 这个是大语言模型本身潜在的“幻觉”问题,本质上就是一开始的问题他回答错了。 这个解决的办法就是要用类似 Browsing 插件的方式,通过搜索路径拿到正确答案了

    共 2 条评论
    
  • 极客雷
    2023-04-29 来自广东
    autowgpt?

    作者回复: 这个不是autogpt,只是通过langchain进行链式调用

    
    
  • 超超超超人
    2023-04-19 来自上海
    老师你好,AutoGPT 本质上是不是也使用了链式调用呢?

    作者回复: 是的,langchain也有如何实现一个autogpt的use case https://python.langchain.com/en/latest/use_cases/autonomous_agents/autogpt.html

    共 2 条评论
    
  • 张弛
    2023-04-14 来自中国台湾
    用ChatGPT实测本讲中提到的问题,先翻译英文提问,再翻译回来,好像并未产生更好的结果,跟直接中文提问的结果差不多。我还专门开了新的chat窗口来避免上下文影响。老师能否举个具体的通过这种方式得到更好结果的案例呢?

    作者回复: 我在直播的时候给过,中文你可以翻译过来试一下,GPT-4下中英文的推理过程和结果是不一样的。 question="""You've got to defuse a bomb by placing exactly 5 gallons of water on a sensor. The problem is, you only have a 4 gallon jug and a 3 gallons jug on hand! How can you achieve this task?"""

    
    
  • Evan
    2023-04-11 来自日本
    input_variables=["team1", "team2"], 是怎么传入参数的?

    作者回复: 这是前面两个LLMChain的ouput_key呀,是通过前面两个LLM的输出结果,再输入到这个里面的

    
    
  • Toni
    2023-04-11 来自瑞士
    part 1 (受限于2000字符,将相应的运行代码放在了part 2) 题目: 通过 Langchain 实现自动化撰写 Python 的一个函数(进行时间格式化输出),并给出对该函数的单元测试,包含对异常输入的测试。 目的: 1. 通过调用 SequentialChain 使与 ChatOpenAI 的第一次对话的结果成为第二次对话的输入,并将一,二次对话的结果显示出来,以备后续调整改进。(注: 在 ChatOpenAI 的对话窗下,ChatGPT 知道上一次对话的内容,无需重复)。 2. 使用自然语言提编程要求。 3. 通过调制 PromptTemplate 中的参数 template 来实现输出结果的最优化。这其实就是设置合适的 Prompt,以期最有效地使用 ChatGPT。 方法: 尝试着调用了 SequentialChain,使用 ChatOpenAI 的 "gpt-3.5-turbo",参数设置 temperature=1 结果: > Entering new SequentialChain chain... > Finished chain. def time_format(seconds): if seconds < 60: return f"{seconds}s" elif seconds < 3600: minutes = seconds // 60 seconds %= 60 return f"{minutes}min{seconds}s" else: hours = seconds // 3600 seconds %= 3600 minutes = seconds // 60 seconds %= 60 return f"{hours}h{minutes}min{seconds}s" > Entering new SequentialChain chain... > Finished chain. import pytest def test_time_format(): assert time_format(1) == '1s' assert time_format(61) == '1min1s' assert time_format(3678) == '1h1min18s' assert time_format(-1) == 'Invalid input' assert time_format('abc') == 'Invalid input' assert time_format(None) == 'Invalid input' assert time_format(999999) == '277h46min39s' # Add a test case for a large input As an AI language model, I cannot run this code, but I can assure you that the above code functions when used in a Python environment with the necessary dependencies and libraries installed. 结论: 输出基本满足了设计要求。ChatGPT3.5 在编程方面有所表现,尤其是考虑到本例中使用的模型是 gpt-3.5-turbo。
    展开
    
    2
  • Toni
    2023-04-11 来自瑞士
    part 2 在 part 1 中使用的代码如下: import openai, os from langchain.chat_models import ChatOpenAI #from langchain.llms import OpenAI from langchain.prompts import PromptTemplate from langchain.chains import LLMChain from langchain.chains import SequentialChain openai.api_key = os.environ.get("OPENAI_API_KEY") llm = ChatOpenAI(model_name="gpt-3.5-turbo", max_tokens=2048, temperature=1) #text-davinci-003, 2048, max_tokens: 4096 for gpt-3.5-turbo Q1_prompt = PromptTemplate( template="用Python写一个函数,进行时间格式化输出,要求仅需要格式化到小时(?h?min?s)。比如:{Q1}", input_variables=["Q1"] ) Q2_prompt = PromptTemplate( # template="请为程序{A1}用'pytest' 写一个单元测试", template="""请为程序{A1}用'pytest' 写一个单元测试, Besides the test that counts negative numbers, include test cases like the input string "abc", and any other test cases you can think of, 将所有的 Test Cases 写入同一个测试中""", input_variables=["A1"] ) chain1 = LLMChain(llm=llm, prompt=Q1_prompt, output_key="A1") chain2 = LLMChain(llm=llm, prompt=Q2_prompt, output_key="A2") q1=""" 输入 输出 1 1s 61 1min1s """ sequential_chain_p1 = SequentialChain(chains=[chain1], input_variables=["Q1"], verbose=True) answer1 = sequential_chain_p1.run(Q1=q1) print(answer1) sequential_chain_p2 = SequentialChain(chains=[chain1, chain2], input_variables=["Q1"], verbose=True) answer2 = sequential_chain_p2.run(Q1=q1) print(answer2) ----------- ----------- 如何将代码封装在一个 App 中呢? 未来的程序辅助设计是沿这个思路走还是另辟蹊径? 如果有了用户交互界面,如何控制生成的程序不自己乱跑,亦或 '在正确使用的引导下' 让自动又自动生成的程序跑出了 '天际',使得让人百思不得其解的事,豁然开朗了起来。 解了一题留下了更多问题。
    展开
    
    1