evoware/ollama-php

一个用于与本地Ollama服务器交互的PHP库。

v0.3.0 2024-04-11 02:43 UTC

This package is auto-updated.

Last update: 2024-09-27 17:37:05 UTC


README

一个综合性的PHP库,旨在与Ollama服务器无缝交互,简化从生成文本补全到管理模型和生成嵌入的各种操作。

但Ollama是什么? Ollama是一个用于在本地运行开源大型语言模型的工具。您可以直接在项目的存储库文档页面找到更多关于Ollama的信息。

安装

要整合Ollama PHP适配器到您的项目中,请使用Composer进行流畅的安装过程

composer require evoware/ollama-php

用法

Ollama PHP适配器简化了与Ollama服务器交互的复杂性,提供了直观的方法来实现各种功能。

生成文本补全

通过向模型提供提示来生成文本补全。通过getResponse()方法访问补全文本

use GuzzleHttp\Client as HttpClient;
use Evoware\OllamaPHP\OllamaClient;

$ollamaClient = new OllamaClient(new HttpClient());

$response = $ollamaClient->generateCompletion('The capital of France is ', ['model' => 'mistral:7b']);
$completionText = $response->getResponse(); // Returns the generated completion text.

与模型交互

通过提供的方法列出、拉取和与本地模型交互来管理您的模型

// List all local models
$models = $ollamaClient->model()->list();

// Pull a local model
$result = $ollamaClient->model()->pull('mistral:7b');

// Alternatively, access via the getModelRepository method
$result = $ollamaClient->getModelRepository()->pull('mistral:7b');

// Load a Modelfile
$ollamaClient->fromModelFile('/path/to/modelfile');

有关模型文件格式的更多信息,请访问Ollama模型文件文档此处

生成嵌入

为给定的文本生成嵌入,通过EmbeddingsResponse对象返回嵌入数据数组

$embeddings = $ollamaClient->generateEmbeddings('This is my text to be embedded.', 'nomic-embed-text');

响应类型

适配器将响应划分为特定对象类型,以提高清晰度和易用性

  • CompletionResponse:处理文本补全请求的数据。
  • ChatCompletionResponse:管理聊天补全数据。
  • EmbeddingsResponse:封装嵌入数据。
  • ModelOperationResponse:表示模型操作的成果(创建、删除、拉取等)。

响应提供通过getHttpResponse()方法访问底层Guzzle响应,以便进行进一步的自定义和处理。

路线图

  • 处理流式响应。
  • 引入ChatSession类以以结构化方式存储聊天上下文。
  • Laravel外观支持

注意

⚠️ 开发阶段:此项目处于早期开发阶段,不建议用于生产环境。它按原样提供,不提供任何保证。请谨慎操作,自行承担风险。⚠️