8 篇文章带有标签 “chattongyi”

使用大型语言模型进行命名实体识别

总结

  • Qwen 模型的指令遵循还是差强人意,这里使用的参数应该是 72B
  • 大型语言模型发挥了它的生成能力,会在原文的基础上给你增加内容,如:济南
  • 问题变化多样,示例也不可能覆盖所有的情况,写的越多占用的上下文长度越大。
  • 在实验二中
    • 明确说明Date实体类型的值,并没有很好的识别出来,如:3月识别为Month一季度识别为Quarter今年识别为Year。这个跟模型有关,ChatGPT就识别的不错。
  • 在实验三中
    • 明确说明不要增加实体类型,但还是增加了,如:County实体类型。
    • 识别的实体有重叠文字,如:曹县曹县供电公司
    • 位置很容易出错,一旦出错后面的实体位置都是错误的了。
  • 使用XML标记方式比输出json结果方式效果更好。

代码 from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import PromptTemplate from langchain_core.runnables import RunnablePassthrough from langchain_community.chat_models.

Gradio Chatbot

Gradio Chatbot

DashScope

import os
import pandas as pd
import gradio as gr
from http import HTTPStatus
from dashscope import Generation
from dashscope.api_entities.dashscope_response import Role
from typing import List, Optional, Tuple, Dict, Generator
from urllib.error import HTTPError


DEFAULT_SYSTEM = '您是一个有用的助手。'

History = List[Tuple[str, str]]
Messages = List[Dict[str, str]]

// ...

LangChain ChatTongyi

LangChain : SQL Chain & SQL Agent

SQL Chain

from datetime import datetime
from operator import itemgetter

from langchain.chains import create_sql_query_chain

from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import PromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_core.runnables import RunnableLambda

from langchain_community.chat_models.tongyi import ChatTongyi
from langchain_community.utilities import SQLDatabase
from langchain_community.tools.sql_database.tool import QuerySQLDataBaseTool


// ...

LangChain : Tagging and Extraction Using OpenAI functions

Extraction

from enum import Enum
from typing import Optional, Type
from langchain.pydantic_v1 import BaseModel, Field


class ProvinceEnum(str, Enum):
    """省、直辖市、自治区"""
    山东省 = "山东省"

class CityEnum(str, Enum):
    """山东省地级市"""
    济南 = "济南"
    青岛 = "青岛"
    淄博 = "淄博"
    枣庄 = "枣庄"
// ...

OpenAI

from langchain_openai import ChatOpenAI

model = ChatOpenAI(temperature=0).bind(
    functions=functions,
    function_call={"name": PowerSupplyStationLocation.__name__}
)

response = model.invoke(prompt)
print(response)

LangChain Chat Models Function & Tool Calling

Chat Models Functions & Tools

Model Function Calling Tool Calling Python Package
ChatOpenAI langchain-openai
ChatTongyi langchain-community
ChatOllama langchain-community
OllamaFunctions langchain-experimental

自定义工具

在构建自己的代理时,您需要为其提供一个工具列表,供其使用。除了实际调用的函数之外,工具还包括几个组件:

  • name (str):是必需的,并且在提供给代理的一组工具中必须是唯一的。
  • description (str):可选,但建议提供,因为代理使用它来确定工具的使用。
  • args_schema (Pydantic BaseModel):可选,但建议提供,可用于提供更多信息(例如,少量示例)或对预期参数进行验证。

定义 Function

DashScope 模型服务灵积

DashScope 模型服务灵积

让大模型能力触达每位开发者

灵积模型服务建立在“模型即服务”(Model-as-a-Service,MaaS)的理念基础之上。

灵积通过灵活、易用的模型API服务,让各种模态模型的能力,都能方便的为AI开发者所用。通过灵积API,开发者不仅可以直接集成大模型的强大能力,也可以对模型进行训练微调,实现模型定制化。

通义千问大型语言模型

模型 描述 上下文长度 计量单价
qwen-turbo 通义千问超大型语言模型,支持中文、英文等不同语言输入。 8k 0.008元/1000 tokens
qwen-plus 通义千问超大型语言模型增强版,支持中文、英文等不同语言输入。 32k 0.02元/1000 tokens
qwen-max 通义千问千亿级别超大型语言模型,支持中文、英文等不同语言输入。 8k 0.12元/1000 tokens
qwen-max-longcontext 通义千问千亿级别超大型语言模型,支持中文、英文等不同语言输入。 30k 0.12元/1000 tokens
qwen-72b-chat 通义千问开源 720 亿参数大型语言模型 8k 0.02元/1000 tokens
qwen1.5-72b-chat 通义千问开源 720 亿参数大型语言模型 32k

LangChain 调用

LangChain Text2SQL Agent

OpenAI Function Call (Extraction)

这个方法只有 OpenAI 的模型支持。

from langchain.agents import tool
from langchain.chat_models import ChatOpenAI
from langchain.tools.render import format_tool_to_openai_function

from langchain.pydantic_v1 import BaseModel, Field
from enum import Enum


# 省份、直辖市
class ProvinceEnum(str, Enum):
    山东省 = "山东省"
    # 其它省份


# 山东省地级市
// ...

OpenAI gpt-3.