theodo-group / llphant
LLPhant is a library to help you build Generative AI applications.
Requires
- php: ^8.1.0
- guzzlehttp/guzzle: ^7.4.5
- guzzlehttp/psr7: ^2.7
- openai-php/client: ^v0.19.2
- php-http/discovery: ^1.20.0
- php-http/multipart-stream-builder: ^1.4.2
- phpoffice/phpword: ^1.4.0
- psr/http-client: ^1.0.3
- psr/http-message: ^1.0 || ^2.0
- psr/log: ^3.0
- smalot/pdfparser: ^2.11
- yethee/tiktoken: ^0.10.0
Requires (Dev)
- ext-mongodb: *
- codewithkyrian/chromadb-php: 1.0.0
- doctrine/dbal: ^4
- doctrine/mongodb-odm: ^2.16.1
- doctrine/orm: ^3
- elasticsearch/elasticsearch: ^8.15
- hkulekci/qdrant: ^1.19
- laravel/pint: v1.15.3
- mockery/mockery: ^1.6.12
- mongodb/mongodb: ^2.1
- opensearch-project/opensearch-php: ^2.3
- pestphp/pest: ^3.0
- pestphp/pest-plugin-arch: ^3.0
- pestphp/pest-plugin-type-coverage: ^3.0
- phpstan/phpstan: ^2
- predis/predis: ^2.2
- rector/rector: ^2
- scotteuser/pinecone-php: ^1.0.4
- symfony/cache: ^7.2
- symfony/process: ^v7.1.8
- symfony/var-dumper: ^7.2
Suggests
- codewithkyrian/chromadb-php: This is required for the ChromaDBVectorStore.
- doctrine/mongodb-odm: This is required for the DoctrineODMVectoreStore. This should be working with any version ^2.16.1
- doctrine/orm: This is required for the DoctrineVectoreStore. This should be working with any version ^2.13.0
- elasticsearch/elasticsearch: This is required for the ElasticsearchVectoreStore.
- hkulekci/qdrant: This is required for the QdrantVectoreStore.
- opensearch-project/opensearch-php: This is required for the OpenSearchVectorStore.
- predis/predis: This is required for the RedisVectoreStore.
- probots-io/pinecone-php: This is required for the PineconeVectorStore. Use scotteuser/pinecone-php for <= PHP 8.2
- symfony/cache: This is one of the possible types of psr/cache needed by doctrine/orm
Provides
None
Conflicts
None
Replaces
None
- dev-main
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.11.21
- 0.11.20
- 0.11.19
- 0.11.18
- 0.11.16
- 0.11.15
- 0.11.14
- 0.11.13
- 0.11.12
- 0.11.11
- 0.11.10
- 0.11.9
- 0.11.8
- 0.11.7
- 0.11.6
- 0.11.5
- 0.11.4
- 0.11.3
- 0.11.2
- 0.11.1
- 0.11.0
- 0.10.8
- 0.10.7
- 0.10.6
- 0.10.5
- 0.10.4
- 0.10.3
- 0.10.2
- 0.10.1
- 0.10.0
- 0.9.12
- 0.9.11
- 0.9.10
- 0.9.9
- 0.9.8
- 0.9.7
- 0.9.6
- 0.9.5
- 0.9.4
- 0.9.3
- 0.9.2
- 0.9.1
- 0.9.0
- 0.8.15
- 0.8.14
- 0.8.13
- 0.8.12
- 0.8.11
- 0.8.10
- 0.8.9
- 0.8.8
- 0.8.7
- 0.8.6
- 0.8.5
- 0.8.4
- 0.8.3
- 0.8.2
- 0.8.1
- 0.8.0
- 0.7.13
- 0.7.12
- 0.7.11
- 0.7.10
- 0.7.9
- 0.7.8
- 0.7.7
- 0.7.6
- 0.7.5
- 0.7.4
- 0.7.3
- 0.7.2
- 0.7.1
- 0.7.0
- 0.6.25
- 0.6.24
- 0.6.23
- 0.6.22
- 0.6.21
- 0.6.20
- 0.6.19
- 0.6.18
- 0.6.17
- 0.6.16
- 0.6.15
- 0.6.14
- 0.6.13
- 0.6.12
- 0.6.11
- 0.6.10
- 0.6.9
- 0.6.8
- 0.6.7
- 0.6.6
- 0.6.5
- 0.6.4
- 0.6.3
- 0.6.2
- 0.6.1
- 0.6.0
- 0.5.1
- 0.5.0
- 0.4.0
- 0.3.5
- 0.3.4
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.13
- 0.2.12
- 0.2.11
- 0.2.10
- 0.2.9
- 0.2.8
- 0.2.7
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- 0.0.4
- 0.0.3
- 0.0.2
- 0.0.1
- 0.0.0
- dev-f-lombardo-patch-1
- dev-update-composer
- dev-MaximeThoonsen-patch-1
- dev-normalize-configs
- dev-count-token-qa
- dev-plop2
- dev-documentation-website-with-docusaurus
- dev-add-redis-vector-store-support
This package is not auto-updated.
Last update: 2026-10-01 12:41:30 UTC
README
We designed this framework to be as simple as possible, while still providing you with the tools you need to build powerful apps. It is compatible with Symfony and Laravel.
We are working to expand the support of different LLMs. Right now, we are supporting OpenAI, Anthropic, Mistral, Ollama, llmman, LM Studio, Atlas Cloud and services compatible with the OpenAI API such as LocalAI. Ollama that can be used to run LLM locally such as Llama 2.
🚀 New: JevClassifier with typed Score classification
LLPhant now supports typed Jev classification with Noul, Choice, and
the new Score rubric-based questions via JevClassifier.
Returned answers now also expose Jev usage metadata via inputTokens and
outputTokens fields.
The same Jev integration can now be used to detect malicious prompt injections
in QuestionAnswering through ClassifierPromptInjectionQueryTransformer.
To use JevClassifier, set your API key:
export JEV_API_KEY=your_api_key
Then instantiate new JevClassifier(). If you prefer, you can also pass the
key explicitly through new JevConfig(apiKey: '...').
See the full Jev API reference: https://docs.typesafe.ai/api and the LLPhant Jev guide in docs/jev-classifier.rst.
Similar projects
We want to thank few amazing projects that we use here or inspired us:
- the learnings from using LangChain and LLamaIndex
- the excellent work from the OpenAI PHP SDK.
We can find great external resource on LLPhant (ping us to add yours):
- 🇫🇷 Construire un RAG en PHP avec la doc de Symfony, LLPhant et OpenAI : Tutoriel Complet
- 🇫🇷 Retour d'expérience sur la création d'un agent autonome
- 🇬🇧 Exploring AI riding an LLPhant
- 🇬🇧 Evaluating LLM and AI agents Outputs with String Comparison, Criteria & Trajectory Approaches
Get Started
Note
Requires PHP 8.1+
First, install LLPhant via the Composer package manager:
composer require theodo-group/llphant
In case you have not installed the GD extension, and you do not want to add it to your PHP setup,
you can use the --ignore-platform-req=ext-gd option
composer require theodo-group/llphant --ignore-platform-req=ext-gd
If you want to try the latest features of this library, you can use:
composer require theodo-group/llphant:dev-main
You may also want to check the requirements for OpenAI PHP SDK as it is the main client.
Documentation
Find documentation in the docs directory or online at https://llphant.readthedocs.org
The documentation includes a JevClassifier guide with typed classification examples for Noul, Choice, and the new Score rubric-based questions.
Contributing
See CONTRIBUTING for details.
Contributors
Thanks to our contributors:
Sponsor
LLPhant is sponsored by :
- AGO. Generative AI customer support solutions.
- Theodo a leading digital agency building web application with Generative AI.