#flows #llm #integration #service #api #chat #llmservice

llmservice-flows

为flows.network提供的LLM服务集成

9个版本

新增 0.3.3 2024年8月21日
0.3.2 2024年8月21日
0.3.0 2024年7月15日
0.2.0 2023年9月11日
0.1.3 2023年8月10日

1644网络编程

Download history 2/week @ 2024-06-24 65/week @ 2024-07-08 236/week @ 2024-07-15 56/week @ 2024-07-22 151/week @ 2024-07-29 263/week @ 2024-08-05 27/week @ 2024-08-12

每月510次下载

MIT/Apache

19KB
296

LLM Service集成 for flows.network.


lib.rs:

Flows.network提供的LLM服务集成

快速入门

要开始,让我们写一个微小的flow函数。

use llmservice_flows::{
    chat::ChatOptions,
    LLMServiceFlows,
};
use lambda_flows::{request_received, send_response};
use serde_json::Value;
use std::collections::HashMap;

#[no_mangle]
#[tokio::main(flavor = "current_thread")]
pub async fn run() {
    request_received(handler).await;
}

async fn handler(_qry: HashMap<String, Value>, body: Vec<u8>) {
    let co = ChatOptions {
      model: Some("gpt-4"),
      token_limit: 8192,
      ..Default::default()
    };
    let mut lf = LLMServiceFlows::new("https://api.openai.com/v1");
    lf.set_api_key("your api key");

    let r = match lf.chat_completion(
        "any_conversation_id",
        String::from_utf8_lossy(&body).into_owned().as_str(),
        &co,
    )
    .await
    {
        Ok(c) => c.choice,
        Err(e) => e,
    };

    send_response(
        200,
        vec![(
            String::from("content-type"),
            String::from("text/plain; charset=UTF-8"),
        )],
        r.as_bytes().to_vec(),
    );
}

当接收到Lambda请求时,使用LLMServiceFlows::chat_completion进行聊天,然后发送响应。

依赖项

~6–18MB
~264K SLoC