alpacapi

package module
v0.0.0-...-f2b4528 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2023 License: AGPL-3.0 Imports: 15 Imported by: 0

README

alpacapi

基于Alpaca的简易中文聊天API

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrTEANilResult  = errors.New("tea encrypt got nil result")
	ErrDataTooBig    = errors.New("data too big")
	ErrWorkerTimeout = errors.New("worker response timeout")
)
View Source
var (
	ErrInvalidMd5 = errors.New("invalid md5 chksum")
)
View Source
var (
	ErrInvalidTokenLength = errors.New("invalid token length")
)

Functions

This section is empty.

Types

type Config

type Config struct {
	Role    string // Role 角色,英文 (如:JK)
	Default string // Default 不知如何回复时的默认回复
}

Config 聊天人设

type Token

type Token struct {
	// contains filtered or unexported fields
}

Token 请求口令

func NewToken

func NewToken(cnt, per uint8, unm string, out, sed int64) (t Token)

NewToken per = 0 for not limit. cnt = 0 is invalid

func ParseToken

func ParseToken(b *[unsafe.Sizeof(Token{})]byte) *Token

ParseToken parse from raw data

func ParseTokenString

func ParseTokenString(s string, teakey tea.TEA, sumtable [16]uint32) (*Token, error)

ParseToken parse from hex string

func (*Token) Hex

func (t *Token) Hex(teakey tea.TEA, sumtable [16]uint32) string

Hex of token

func (*Token) IsValid

func (t *Token) IsValid() bool

IsValid check md5, cnt != 0 and not out of expire date

func (*Token) NewLimiter

func (t *Token) NewLimiter() *rate.Limiter

NewLimiter ...

func (*Token) String

func (t *Token) String() string

String prints unm

type UserMessage

type UserMessage struct {
	Name    string
	Message string
}

UserMessage Name: Message

func (*UserMessage) String

func (um *UserMessage) String() string

type UserMessageSequence

type UserMessageSequence []UserMessage

func (UserMessageSequence) String

func (ums UserMessageSequence) String() string

type WorkerReply

type WorkerReply struct {
	ID        uint32
	IsPending bool
	Msg       string
}

WorkerReply ...

func ParseWorkerReply

func ParseWorkerReply(body []byte) (rep WorkerReply, err error)

ParseWorkerReply...

func (*WorkerReply) Pack

func (r *WorkerReply) Pack() []byte

func (*WorkerReply) String

func (r *WorkerReply) String() string

type WorkerRequest

type WorkerRequest struct {
	ID      uint32
	Config  Config
	Message UserMessageSequence
}

WorkerRequest ...

func ParseWorkerRequest

func ParseWorkerRequest(body []byte) (req WorkerRequest, err error)

ParseWorkerRequest ...

func (*WorkerRequest) GetReply

func (r *WorkerRequest) GetReply(worker *net.UDPAddr, buffersize int, timeout time.Duration, teakey tea.TEA, sumtable [16]uint32) (rep WorkerReply, err error)

GetReply ...

func (*WorkerRequest) Pack

func (r *WorkerRequest) Pack() []byte

func (*WorkerRequest) String

func (r *WorkerRequest) String() string

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

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