base on Latitude is the open-source prompt engineering platform to build, evaluate, and refine your prompts with AI <div align="center">
<a href="https://ai.latitude.so?utm_source=github" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/latitude-dev/latitude/assets/5465249/4783e122-7150-4bcc-96e0-a3c9c4c1c53b">
<img alt="Latitude Logo" src="https://github.com/latitude-dev/latitude/assets/5465249/92cd5508-6177-485a-a758-67d71e2cd5ce" width="280"/>
</picture>
</a>
</div>
<br/>
<h1 align="center" style="border: none; margin-bottom: 8px;">The Open-Source Prompt Engineering Platform</h1>
<p align="center">
<br />
<a href="https://docs.latitude.so" rel="dofollow"><strong>See documentation β</strong></a>
<br />
<br/>
<a href="https://github.com/latitude-dev/latitude-llm/issues/new">Report Bug</a>
Β·
<a href="https://join.slack.com/t/trylatitude/shared_invite/zt-2vlnnz3xi-mO1DArzBX0lTJJBATVhR7w">Join Our Slack</a>
Β·
<a href="https://x.com/trylatitude">X</a>
</p>
## π Why Latitude?
Latitude is a platform that helps developers and product teams build AI features with confidence. Here's what it does:
1. Makes prompts easier to manage: Instead of hiding prompts in code, Latitude lets everyone work on them together.
2. Helps with testing: AI doesn't always return the same answer, which can be tricky. Latitude uses LLMs to check other LLM responses, looking for mistakes or off-topic answers.
3. Provides insights: Offers detailed analytics on LLM request performance, including response times and cost comparisons across various AI models and prompt versions.
Latitude puts all these helpful tools in one place. This means you can add AI to your products without a lot of hassle, and keep an eye on how it's all working.
<a href="https://www.youtube.com/watch?v=jPVn9kf4GrE" target="_blank"><img alt="Latitude screenshot" src="https://github.com/user-attachments/assets/3d5a217d-7f75-4997-b569-e8754ce505e8"></a>
## β¨ Features
- π₯ Collaborative prompt manager
- π Support for advanced features like parameters, snippets, logic, and more
- π Version control for prompts
- π API + SDKs for easy integration
- π Built-in observability
- π Evaluations in batch or real-time
- π Open-source driven by the community
## π Table Of Contents
- [Quick start](https://github.com/latitude-dev/latitude-llm#-quick-start)
- [Community](https://github.com/latitude-dev/latitude-llm#-community)
- [Contributing](https://github.com/latitude-dev/latitude-llm#-contributing)
- [License](https://github.com/latitude-dev/latitude-llm#-license)
- [Links](https://github.com/latitude-dev/latitude-llm#-links)
## β‘ Quick start
Latitude offers two deployment options:
1. **Latitude Cloud**: A fully managed solution that allows you to get started quickly without worrying about infrastructure.
2. **Latitude Self-Hosted**: An open-source version that you can deploy and manage on your own infrastructure for complete control and customization.
Choose the option that best fits your needs and follow the corresponding instructions below.
### Latitude Cloud
To get started with Latitude, follow these steps:
1. **Sign up for Latitude**: Visit our [website](https://latitude.so) and follow the instructions to create your account.
2. **Create a new project**: Once logged in, create a new project to organize your prompts and evaluations.
3. **Write your first prompt**: Navigate to the Editor and create a new prompt. Start with a simple task, like generating a short story or answering a question.
4. **Test your prompt**: Use the playground to test your prompt with different inputs and see the model's responses.
5. **Evaluate in batch**: Before deploying, you can upload a dataset and run a batch evaluation to assess your prompt's performance across various scenarios.
6. **Deploy your prompt**: Once you're satisfied with your prompt's performance in batch evaluation, deploy it as an endpoint for easy integration with your applications.
7. **Monitor and evaluate**: Use the Logs section to review your prompt's performance over time. Set up ongoing evaluations to systematically assess and improve your prompt's output.
8. **Iterate and improve**: Based on the evaluation results, refine your prompt or create new versions to enhance its performance.
9. **Collaborate with your team**: Invite team members to your Latitude workspace to collaborate on prompt engineering and evaluations.
For more detailed information on each step, explore our documentation or join our [community](https://join.slack.com/t/trylatitude/shared_invite/zt-2vlnnz3xi-mO1DArzBX0lTJJBATVhR7w) for support and discussions.
### Latitude Self-Hosted
Follow the instructions in the [self-hosted guide](https://docs.latitude.so/self-hosted/quick-start) to get started with Latitude Self-Hosted.
After setting up Latitude Self-Hosted, you can follow the same steps as in the Latitude Cloud guide to create, test, evaluate, and deploy your prompts.
## π₯ Community
The Latitude community can be found on
[Slack](https://join.slack.com/t/trylatitude/shared_invite/zt-2vlnnz3xi-mO1DArzBX0lTJJBATVhR7w)
where you can ask questions, voice ideas, and share your projects with other
people.
## π€ Contributing
Contributions to Latitude are welcome and highly appreciated.
If you are interested in contributing, please join us on ourΒ [Slack
community](https://join.slack.com/t/trylatitude/shared_invite/zt-2vlnnz3xi-mO1DArzBX0lTJJBATVhR7w),
open anΒ [issue](https://github.com/latitude-dev/latitude-llm/issues/new), or
contribute a pull request.
## π License
Latitude is licensed under the [LGPL-3.0](LICENSE).
Alternatively, we offer a more permissive commercial license for those who need it. Please contact us at [
[email protected]](mailto:
[email protected]) for more information.
## π Links
- [Home page](https://latitude.so?utm_campaign=github-readme)
- [Documentation](https://docs.latitude.so/)
- [Slack community](https://join.slack.com/t/trylatitude/shared_invite/zt-2vlnnz3xi-mO1DArzBX0lTJJBATVhR7w)
- [X / Twitter](https://x.com/trylatitude)
", Assign "at most 3 tags" to the expected json: {"id":"11953","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"