mirror of
https://github.com/RockChinQ/QChatGPT.git
synced 2024-11-16 19:57:04 +08:00
38 lines
933 B
Python
38 lines
933 B
Python
from __future__ import annotations
|
||
|
||
import abc
|
||
import typing
|
||
import asyncio
|
||
|
||
import pydantic
|
||
|
||
from ...core import entities as core_entities
|
||
|
||
|
||
class LLMFunction(pydantic.BaseModel):
|
||
"""函数"""
|
||
|
||
name: str
|
||
"""函数名"""
|
||
|
||
human_desc: str
|
||
|
||
description: str
|
||
"""给LLM识别的函数描述"""
|
||
|
||
enable: typing.Optional[bool] = True
|
||
|
||
parameters: dict
|
||
|
||
func: typing.Callable
|
||
"""供调用的python异步方法
|
||
|
||
此异步方法第一个参数接收当前请求的query对象,可以从其中取出session等信息。
|
||
query参数不在parameters中,但在调用时会自动传入。
|
||
但在当前版本中,插件提供的内容函数都是同步的,且均为请求无关的,故在此版本的实现(以及考虑了向后兼容性的版本)中,
|
||
对插件的内容函数进行封装并存到这里来。
|
||
"""
|
||
|
||
class Config:
|
||
arbitrary_types_allowed = True
|