conversation

package
v1.15.0-rc.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 28, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

README

Conversation

Conversations provide a common way to converse with different LLM providers.

Documentation

Overview

Copyright 2024 The Dapr Authors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2024 The Dapr Authors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2024 The Dapr Authors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2024 The Dapr Authors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	RoleSystem    = "system"
	RoleUser      = "user"
	RoleAssistant = "assistant"
	RoleFunction  = "function"
	RoleTool      = "tool"
)

Variables

This section is empty.

Functions

func CacheModel

func CacheModel(ctx context.Context, ttl string, model llms.Model) (llms.Model, error)

CacheModel creates a prompt query cache with a configured TTL

func ConvertLangchainRole

func ConvertLangchainRole(role Role) llms.ChatMessageType

func LangchainTemperature

func LangchainTemperature(temperature float64) llms.CallOption

LangchainTemperature returns a langchain compliant LLM temperature

Types

type Conversation

type Conversation interface {
	metadata.ComponentWithMetadata

	Init(ctx context.Context, meta Metadata) error

	Converse(ctx context.Context, req *ConversationRequest) (*ConversationResponse, error)

	io.Closer
}

type ConversationInput

type ConversationInput struct {
	Message string `json:"string"`
	Role    Role   `json:"role"`
}

type ConversationRequest

type ConversationRequest struct {
	Inputs              []ConversationInput   `json:"inputs"`
	Parameters          map[string]*anypb.Any `json:"parameters"`
	ConversationContext string                `json:"conversationContext"`
	Temperature         float64               `json:"temperature"`

	// from metadata
	Key       string   `json:"key"`
	Model     string   `json:"model"`
	Endpoints []string `json:"endpoints"`
	Policy    string   `json:"loadBalancingPolicy"`
}

type ConversationResponse

type ConversationResponse struct {
	ConversationContext string               `json:"conversationContext"`
	Outputs             []ConversationResult `json:"outputs"`
}

type ConversationResult

type ConversationResult struct {
	Result     string                `json:"result"`
	Parameters map[string]*anypb.Any `json:"parameters"`
}

type LangchainMetadata

type LangchainMetadata struct {
	Key      string `json:"key"`
	Model    string `json:"model"`
	CacheTTL string `json:"cacheTTL"`
}

LangchainMetadata is a common metadata structure for langchain supported implementations.

type Metadata

type Metadata struct {
	metadata.Base `json:",inline"`
}

Metadata represents a set of conversation specific properties.

type Role

type Role string

Directories

Path Synopsis
aws

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL