amohamed / jsconnector
JSConnector Laravel 包提供了一种简单的方法将 JSConnector JavaScript 库集成到您的 Laravel 应用程序中。此包提供了一个简单的门面来与 JSConnector 库交互,使开发者能够利用 OpenAI 语言模型在他们的 Laravel 项目中,无需直接管理 PHP 和 JavaScript 之间的通信。
Requires
- php: >=7.2
- doctrine/dbal: >=2.10
- guzzlehttp/guzzle: >=7.0.1
- illuminate/support: >=8.0
- laravel/framework: >=8.0
Requires (Dev)
- orchestra/testbench: *
- orchestra/testbench-core: ^9.0
- phpunit/phpunit: >=9.5.10
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)