amohamed/jsconnector

JSConnector Laravel 包提供了一种简单的方法将 JSConnector JavaScript 库集成到您的 Laravel 应用程序中。此包提供了一个简单的门面来与 JSConnector 库交互,使开发者能够利用 OpenAI 语言模型在他们的 Laravel 项目中,无需直接管理 PHP 和 JavaScript 之间的通信。

安装: 11

依赖项: 0

建议者: 0

安全: 0

星标: 3

关注者: 1

分支: 0

开放问题: 0

类型:项目

v1.0.5 2023-06-17 23:46 UTC

This package is auto-updated.

Last update: 2024-09-18 02:23:29 UTC


README

Laravel JS Connector 包提供了一种简单的方法将 JSConnector JavaScript 库集成到您的 Laravel 应用程序中。此包提供了一个简单的门面来与 JSConnector 库交互,使开发者能够利用 OpenAI 语言模型在他们的 Laravel 项目中,无需直接管理 PHP 和 JavaScript 之间的通信。

安装

您可以通过 composer 安装此包

composer require amohamed/jsconnector

配置

使用以下命令发布配置文件

php artisan vendor:publish --provider="Amohamed\JSConnector\JSConnectorServiceProvider" --tag="config"

这是配置文件的内容

return [
    'api_url' => env('JS_CONNECTOR_API_URL', 'https://:3000/api'),
    'retry_times' => env('JS_CONNECTOR_RETRY_TIMES', 3),
    'retry_interval' => env('JS_CONNECTOR_RETRY_INTERVAL', 100),
];

您可以在 .env 文件中自定义值,如下所示

JS_CONNECTOR_API_URL=https://:3000/api
JS_CONNECTOR_RETRY_TIMES=3
JS_CONNECTOR_RETRY_INTERVAL=100

启动和停止 Node.js 服务器

在您可以使用 JSConnector 发送请求之前,您需要确保 Node.js 服务器正在运行。您可以使用提供的 artisan 命令来启动服务器

php artisan jsconnector:serve

要停止正在运行的服务器,您可以使用

php artisan jsconnector:stop

用法

以下是使用 JS Connector 的基本示例

$response = JSConnector::post('test-endpoint', ['baz' => 'qux']);

与 LangChain JS 一起使用

要在您的 Laravel 应用程序中使用 JSConnector 和 LangChain JS,您需要首先安装 LangChain JS。您可以通过运行以下命令来完成此操作

npm install -S langchain

然后,在您的 Node.js 服务器上,您可以创建一个 JavaScript 文件,在该文件中导入并初始化 LangChain

require('dotenv').config();

const { OpenAI } = require('langchain/llms/openai');
const { BufferMemory } = require('langchain/memory');
const { ConversationChain } = require('langchain/chains');

const model = new OpenAI({ key: process.env.OPENAI_API_KEY });
const memory = new BufferMemory();
const chain = new ConversationChain({ llm: model, memory: memory });
const cors = require('cors');

const express = require('express');
const app = express();
app.use(cors());

app.use(express.json());

app.post('/chat', async (req, res) => {
    console.log(`Request body: ${JSON.stringify(req.body)}`);
    const result = await chain.call({ input: req.body.input });
    console.log(`API response: ${JSON.stringify(result)}`);
    res.send(result);
});

app.listen(3000, () => {
    console.log('Langchain server running on port 3000');
});

在您的 Laravel 应用程序中,您可以使用 JSConnector 将数据发送到 LangChain JS 服务

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Amohamed\JSConnector\Facades\JSConnector;

class LangChainController extends Controller
{
    public function chat(Request $request)
    {
        $input = $request->input('message');

        // We use the post method on the JSConnector facade
        $response = JSConnector::post('chat', ['input' => $input]);

        // Then we return the response from the langchainjs service
        return response()->json(['response' => $response]);
    }
}

Route::post('/chat', 'App\Http\Controllers\LangChainController@chat');

这将把 LangChain JS 服务的响应发送回客户端。

测试

使用以下命令运行测试

vendor/bin/phpunit

许可证

Laravel JS Connector 是开源软件,许可协议为 MIT。

作者

Abdallah Mohamed (abdal_cascad@hotmail.com)