openai_client#

OpenAI ModelClient 集成。

函数

get_all_messages_content(completion)

当 n > 1 时,获取所有消息内容。

get_first_message_content(completion)

当我们只需要第一条消息的内容时。

get_probabilities(completion)

获取完成中每个标记的概率。

handle_streaming_response(generator)

处理流式响应。

parse_stream_response(completion)

解析流式API的响应。

OpenAIClient([api_key, ...])

OpenAI API 客户端的组件封装。

get_first_message_content(completion: ChatCompletion) str[source]#

当我们只需要第一条消息的内容时。 这是聊天完成的默认解析器。

parse_stream_response(completion: ChatCompletionChunk) str[source]#

解析流API的响应。

handle_streaming_response(generator: Stream[ChatCompletionChunk])[source]#

处理流式响应。

get_all_messages_content(completion: ChatCompletion) List[str][source]#

当 n > 1 时,获取所有消息内容。

get_probabilities(completion: ChatCompletion) List[List[TokenLogProb]][source]#

获取完成中每个标记的概率。

class OpenAIClient(api_key: str | None = None, chat_completion_parser: Callable[[Completion], Any] = None, input_type: Literal['text', 'messages'] = 'text')[source]#

基础:ModelClient

OpenAI API 客户端的组件包装器。

支持嵌入和聊天完成API。

用户 (1) 通过传递 OpenAIClient() 作为 model_client 来简化使用 EmbedderGenerator 组件。 (2) 可以使用此示例创建自己的 API 客户端或在自己的项目中扩展此类(复制并修改代码)。

注意

我们建议用户在调用API时不要在model_kwargs中使用response_format来强制输出数据类型或使用toolstool_choice。 我们不知道OpenAI是如何进行格式化的,也不知道他们添加了什么提示。 相反 - 使用OutputParser进行响应解析和格式化。

Parameters:
  • api_key (可选[str], 可选) – OpenAI API 密钥。默认为 None。

  • chat_completion_parser (Callable[[Completion], Any], optional) – 一个用于将聊天完成解析为字符串的函数。默认为 None。 默认是 get_first_message_content

参考文献

init_sync_client()[source]#
init_async_client()[source]#
parse_chat_completion(completion: ChatCompletion | Generator[ChatCompletionChunk, None, None]) GeneratorOutput[source]#

解析完成,并将其放入 raw_response 中。

track_completion_usage(completion: ChatCompletion | Generator[ChatCompletionChunk, None, None]) CompletionUsage[source]#

跟踪聊天完成的使用情况。使用OpenAI标准API进行跟踪。

parse_embedding_response(response: CreateEmbeddingResponse) EmbedderOutput[source]#

解析嵌入响应为LightRAG组件可以理解的结构。

应该在Embedder中调用。

convert_inputs_to_api_kwargs(input: Any | None = None, model_kwargs: Dict = {}, model_type: ModelType = ModelType.UNDEFINED) Dict[source]#

指定将在_call和_acall方法中使用的API输入类型和输出api_kwargs。 将组件的标准输入、system_input(聊天模型)和model_kwargs转换为API特定的格式。

call(api_kwargs: Dict = {}, model_type: ModelType = ModelType.UNDEFINED)[source]#

kwargs 是输入和 model_kwargs 的组合。支持流式调用。

async acall(api_kwargs: Dict = {}, model_type: ModelType = ModelType.UNDEFINED)[source]#

kwargs 是输入和 model_kwargs 的组合

classmethod from_dict(data: Dict[str, Any]) T[source]#

使用to_dict()方法从先前序列化的数据创建实例。

to_dict() Dict[str, Any][source]#

将组件转换为字典。