0xPlaygrounds / rig

A library for developing LLM-powered Rust applications.
https://rig.rs
MIT License
81 stars 3 forks source link

feat: Add support for Perplexity models #4

Closed cvauclair closed 1 week ago

cvauclair commented 2 weeks ago

Feature Request

Add support for Perplexity models

Motivation

Perplexity is a popular platform that offers a completion API. Although they do not develop their own models, their completion API is able to search the web to generate responses, which can be very useful when building Rig applications.

Proposal

Create a new module rig::providers::perplexity which should roughly contain the following:

// src/providers/perplexity.rs
struct Client {
  // TODO
}

struct CompletionRequest {
  // Modeled after Anthropic API
  // TODO
}

impl From<completion::CompletionRequest> for CompletionRequest {
  // TODO
}

struct CompletionResponse {
  // Modeled after Anthropic API
  // TODO
}

impl From<CompletionResponse> for completion::CompletionResponse<CompletionResponse> {
  // TODO
}

struct CompletionModel {
  // TODO
}

impl completion::CompletionModel for CompletionModel {
  // TODO
}

Note: Use the existing provider integrations as a guide (see rig::providers::openai and rig::providers::cohere).