Skip to content

定义聊天模型

ChatOpenAI 常见参数

参数使用意义
api_key传入 API_KEY请求密钥
model传入模型字符串表示选择哪个模型
base_url传入字符串路径请求 API 的路径
temperature传入数字数字越大,内容越天马行空
time_out传入数字超出时间限制
max_retries传入整数最大重试次数
max_tokens传入整数最大 token
organization传入字符串组织Id

temperature

前置内容

  1. SystemMessage: 请帮我补充下述句子,50字以内
  2. HumanMessage: "我有一条鱼,__
温度值适用场景
0代码等实事求是的场景
0 ~ 0.5文档/写作等轻微创意的场景
0.5 ~ 1对话等平衡创意的场景
1 ~ 2灵感激发等高度创意的场景
> 2× 不推荐
  • temperature 设置为 0

    text
    输出结果:
    它会翻跟头,还会用尾巴画彩虹。
    我有一条鱼,它总在缸里画圈,像在写一首只有水懂的诗。
    我有一条鱼,它总在鱼缸里悠闲地转圈,像在跳水中芭蕾。
    它总是快乐地在水里游来游去,给我带来无限欢乐。
  • temperature 设置为 0.5

    text
    输出结果:
    我有一条鱼,它会在夜里发光,照亮我失眠的梦。
    我有一条鱼,它总爱在鱼缸里转圈,像在跳华尔兹。
    它是一条金鱼,在水里自由自在地游着。
  • temperature 设置为 1

    text
    输出结果:
    我有一条鱼,它每天都快乐地在水里游来游去。
    我有一条鱼,养在透明的玻璃缸里,每天悠闲地吐着泡泡。
    但它总想学我走路,结果在鱼缸里摔了八跤。
    我有一条鱼,它总在鱼缸里对着我吐泡泡,像是在说悄悄话。
  • temperature 设置为 2

    text
    输出结果:
    我给它取名叫“小鲨鱼”,它总是优雅地吐着泡泡。
    我有一条鱼,它总在鱼缸里转圈圈,像在跳舞。
    我有一条鱼,它总在夜里悄悄练习飞翔,梦想着变成一只鸟。
    它总爱在鱼缸里转圈,仿佛在跳圆舞曲。

init_chat_model

它的参数与上诉的参数类似

快速入门

  1. 下载包:pip install -U langchain
  2. 使用 init_chat_model
    Python
    # model_provider 是模型提供商, deepseek-v4-flash 是模型
    model = init_chat_model('deepseek-v4-flash', model_provider='deepseek')
    print(model.invoke("你是谁"))

自定义模型配置

  1. 开始的时候不需要配置模型 model = init_chat_model(temperature=0.3)
  2. invoke() 中对于 config 传入相关参数即可
    Python
    messages = [
        SystemMessage("请帮我补充下述句子,50字以内"),
        HumanMessage("我有一条鱼,__")
    ]
    # config 里面传入对象,key 是 configurable,value 是 model: deepseek-v4-flash 这个对象 
    print(model.invoke(messages, config={'configurable': {"model": 'deepseek-v4-flash'}}))

修改默认参数

  1. 在 init_chat_model 内添加 configurable_fields

    model_provider="openai" 必须添加,不然会获取到 DEEKSEEK_API_KEY 这个环境变量, 而不是 阿里云配置的 OPENAI_API_KEY

    Python
    # 设置模型
    model = init_chat_model(
        model='deepseek-v4-flash',
        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
        # 这个是起到默认API_KEY 的名称的配置,
        # 比如 openai 就是 OPENAI_API_KEY, deepseek 就是 DEEPSEEK_API_KEY
        model_provider="openai",
        max_tokens=1024,
        # 元组内必须添加 "," 用来区别字符串与元组。
        # 如果写的是 ("max_tokens") 那么就不会生效
        configurable_fields=("max_tokens", ),
        config_prefix="pre" # 这个可以不加,但是最好加一下,以免区分不了默认的与后修改的
    )
  2. 其余步骤都一样,只需要在 configurable 里面添加 pre 前缀即可

    Python
    # 设置模型
    messages = [
        SystemMessage("请帮我补充下述句子,100字以内"),
        HumanMessage("一只橘黄色的小猫,__")
    ]
    
    result = model.invoke(messages, config={
        "configurable": {
            "pre_max_tokens": 20, # 如果生效,那么就没有输出,不生效才有输出
        }
    })
    
    print(result.content)