evoware / ollama-php
一个用于与本地Ollama服务器交互的PHP库。
v0.3.0
2024-04-11 02:43 UTC
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.8
Requires (Dev)
- laravel/pint: >=1.15
- phpunit/phpunit: ^11.0
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外观支持
注意
⚠️ 开发阶段:此项目处于早期开发阶段,不建议用于生产环境。它按原样提供,不提供任何保证。请谨慎操作,自行承担风险。⚠️