379
docs/ATTPs/README.md
Normal file
|
@ -0,0 +1,379 @@
|
|||
|
||||
# APRO-COM/ATTPs-framework
|
||||
|
||||
Foundation framework that enables advanced agent based on DeepSeek interactions, data verification, and price queries with [ATTPs Protocol](https://docs.apro.com/attps) . It streamlines agent creation, verification processes, and provides a flexible framework for building robust agent-based solutions.
|
||||
|
||||
For more details about ATTPs, you can see the [whitepaper here](https://www.apro.com/attps.pdf)
|
||||
|
||||
## Overview
|
||||
|
||||
The ATTPs framework bridges agent-based logic with the DeepSeek. It handles agent registration, data verification, and price queries, empowering both automated and user-driven workflows.
|
||||
|
||||
## Features
|
||||
|
||||
### Agent Operations
|
||||
- **Agent Creation**: Deploy new agents with custom settings
|
||||
- **Registration**: Register agents on-chain or via standardized processes
|
||||
- **Multi-Signer Framework**: Supports threshold-based approval flows
|
||||
|
||||
### Data Verification
|
||||
- **Chain Validation**: Verify data authenticity on-chain
|
||||
- **Transaction Execution**: Handle verification logic with built-in security checks
|
||||
- **Auto-Hashing**: Convert raw data to hashed formats when needed
|
||||
- **Metadata Parsing**: Validate content type, encoding, and compression
|
||||
|
||||
### Price Queries
|
||||
- **Live Price Data**: Fetch price information for various pairs
|
||||
- **Format Validation**: Normalize user query inputs to standard trading-pair formats
|
||||
- **APIs Integration**: Retrieve real-time or near-real-time pricing information
|
||||
|
||||
## Security Features
|
||||
|
||||
### Access Control
|
||||
- **Private Key Management**: Safe usage of private keys for transaction signing
|
||||
- **Environment Variables**: Secure injection of credentials
|
||||
- **On-Chain Validation**: Leverage on-chain contract checks
|
||||
|
||||
### Verification
|
||||
- **Input Validation**: Strict schema checks before on-chain operations
|
||||
- **Transaction Receipts**: Provide verifiable transaction details
|
||||
- **Error Handling**: Detailed error logs for quick debugging
|
||||
|
||||
## Performance Optimization
|
||||
|
||||
1. **Cache Management**
|
||||
- Implement caching for frequent queries
|
||||
- Monitor retrieval times and cache hits
|
||||
|
||||
2. **Network Efficiency**
|
||||
- Batch requests where possible
|
||||
- Validate response parsing to reduce overhead
|
||||
|
||||
## System Requirements
|
||||
- Node.js 16.x or higher
|
||||
- Sufficient network access to on-chain endpoints
|
||||
- Basic configuration of environment variables
|
||||
- Minimum 4GB RAM recommended
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
1. **Invalid Agent Settings**
|
||||
- Ensure signers and threshold are correct
|
||||
- Validate agentHeader for proper UUIDs and numeric values
|
||||
|
||||
2. **Verification Failures**
|
||||
- Check the input data formats
|
||||
- Confirm environment variables are set
|
||||
|
||||
3. **Price Query Errors**
|
||||
- Verify the trading pair format
|
||||
- Check external API availability
|
||||
|
||||
## Safety & Security
|
||||
|
||||
1. **Credential Management**
|
||||
- Store private keys securely
|
||||
- Do not commit secrets to version control
|
||||
|
||||
2. **Transaction Limits**
|
||||
- Configure thresholds to mitigate abuse
|
||||
- Log transaction attempts and failures
|
||||
|
||||
3. **Monitoring & Logging**
|
||||
- Track unusual activity
|
||||
- Maintain detailed audit logs
|
||||
|
||||
|
||||
# Usage with js
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
npm install ai-agent-sdk-js
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Configure the plugin by setting environment variables or runtime settings:
|
||||
- APRO_RPC_URL
|
||||
- APRO_PROXY_ADDRESS
|
||||
- APRO_PRIVATE_KEY
|
||||
- APRO_CONVERTER_ADDRESS
|
||||
- APRO_AUTO_HASH_DATA
|
||||
|
||||
## Usage with js sdk
|
||||
|
||||
To use the AI Agent SDK, import the library and create an instance of the `Agent` class:
|
||||
|
||||
```typescript
|
||||
import { AgentSDK } from 'ai-agent-sdk-js'
|
||||
|
||||
const agent = new AgentSDK({
|
||||
rpcUrl: 'https://bsc-testnet-rpc.publicnode.com',
|
||||
privateKey: '',
|
||||
proxyAddress: '',
|
||||
})
|
||||
|
||||
// if you want the SDK to hash the data automatically
|
||||
const autoHashAgent = new AgentSDK({
|
||||
rpcUrl: 'https://bsc-testnet-rpc.publicnode.com',
|
||||
privateKey: '',
|
||||
proxyAddress: '',
|
||||
autoHashData: true,
|
||||
converterAddress: '',
|
||||
})
|
||||
```
|
||||
|
||||
To create a new agent, call the `createAndRegisterAgent` method:
|
||||
|
||||
```typescript
|
||||
import type { AgentSettings, TransactionOptions } from 'ai-agent-sdk-js'
|
||||
import { randomUUID } from 'node:crypto'
|
||||
import { parseUnits } from 'ethers'
|
||||
|
||||
// prepare the agent settings
|
||||
const agentSettings: AgentSettings = {
|
||||
signers: [],
|
||||
threshold: 3,
|
||||
converterAddress: '',
|
||||
agentHeader: {
|
||||
messageId: randomUUID(),
|
||||
sourceAgentId: randomUUID(),
|
||||
sourceAgentName: 'AI Agent SDK JS',
|
||||
targetAgentId: '',
|
||||
timestamp: Math.floor(Date.now() / 1000),
|
||||
messageType: 0,
|
||||
priority: 1,
|
||||
ttl: 3600,
|
||||
},
|
||||
}
|
||||
|
||||
// prepare the transaction options
|
||||
const nonce = await agent.getNextNonce()
|
||||
const transactionOptions: TransactionOptions = {
|
||||
nonce,
|
||||
gasPrice: parseUnits('1', 'gwei'),
|
||||
gasLimit: BigInt(2000000),
|
||||
}
|
||||
|
||||
const tx = await agent.createAndRegisterAgent({ agentSettings, transactionOptions })
|
||||
|
||||
// or you can leave the transaction options empty, the SDK will use the auto-generated values
|
||||
// const tx = await agent.createAndRegisterAgent({ agentSettings })
|
||||
```
|
||||
|
||||
The SDK also provides the tool to extract the new agent address from the transaction receipt:
|
||||
|
||||
```typescript
|
||||
import { parseNewAgentAddress } from 'ai-agent-sdk-js'
|
||||
|
||||
const receipt = await tx.wait()
|
||||
const agentAddress = parseNewAgentAddress(receipt)
|
||||
```
|
||||
|
||||
To verify the data integrity, call the `verify` method:
|
||||
|
||||
```typescript
|
||||
import type { MessagePayload } from 'ai-agent-sdk-js'
|
||||
import { hexlify, keccak256, toUtf8Bytes } from 'ethers'
|
||||
|
||||
// prepare the payload
|
||||
const data = hexlify(toUtf8Bytes('Hello World!'))
|
||||
const dataHash = keccak256(data)
|
||||
const payload: MessagePayload = {
|
||||
data,
|
||||
dataHash,
|
||||
signatures: [
|
||||
{
|
||||
r: '',
|
||||
s: '',
|
||||
v: 1, // 1, 0, 27, 28 are allowed
|
||||
},
|
||||
// ...
|
||||
],
|
||||
metadata: {
|
||||
contentType: '',
|
||||
encoding: '',
|
||||
compression: '',
|
||||
},
|
||||
}
|
||||
|
||||
const tx = await agent.verify({ payload, agent: '', digest: '' })
|
||||
```
|
||||
|
||||
If the data is obtained from the APRO DATA pull service, you can use the auto-hash feature:
|
||||
|
||||
```typescript
|
||||
import type { MessagePayload } from 'ai-agent-sdk-js'
|
||||
|
||||
const payload: MessagePayload = {
|
||||
data: '0x...',
|
||||
signatures: [
|
||||
{
|
||||
r: '',
|
||||
s: '',
|
||||
v: 1, // 1, 0, 27, 28 are allowed
|
||||
},
|
||||
// ...
|
||||
],
|
||||
metadata: {
|
||||
contentType: '',
|
||||
encoding: '',
|
||||
compression: '',
|
||||
},
|
||||
}
|
||||
|
||||
// When
|
||||
const tx = await autoHashAgent.verify({ payload, agent: '', digest: '' })
|
||||
```
|
||||
|
||||
For more examples, see the [test](https://github.com/APRO-com/ai-agent-sdk-js/tree/main/test) cases.
|
||||
|
||||
|
||||
|
||||
# Usage with Python
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
$ pip3 install ai-agent-sdk
|
||||
|
||||
```
|
||||
|
||||
## Usage with Python SDK
|
||||
|
||||
### Initialize AgentSDK
|
||||
|
||||
```python
|
||||
from ai_agent.agent import AgentSDK
|
||||
|
||||
AGENT_PROXY_ADDRESS = "0x07771A3026E60776deC8C1C61106FB9623521394"
|
||||
NETWORK_RPC = "https://testnet-rpc.bitlayer.org"
|
||||
|
||||
agent = AgentSDK(endpoint_uri=NETWORK_RPC, proxy_address=AGENT_PROXY_ADDRESS)
|
||||
```
|
||||
|
||||
To create a new agent, call the createAndRegisterAgent method:
|
||||
|
||||
```python
|
||||
import time
|
||||
from ai_agent.entities import (
|
||||
AgentSettings,
|
||||
AgentHeader,
|
||||
MessageType,
|
||||
Priority
|
||||
)
|
||||
from ai_agent.utils import (
|
||||
generate_uuid_v4
|
||||
)
|
||||
|
||||
AGENT_SETTINGS = AgentSettings(
|
||||
signers=[
|
||||
"0x4b1056f504f32c678227b5Ae812936249c40AfBF",
|
||||
"0xB973476e0cF88a3693014b99f230CEB5A01ac686",
|
||||
"0x6cF0803D049a4e8DC01da726A5a212BCB9FAC1a1",
|
||||
"0x9D46daa26342e9E9e586A6AdCEDaD667f985567B",
|
||||
"0x33AF673aBcE193E20Ee94D6fBEb30fEf0cA7015b",
|
||||
"0x868D2dE4a0378450BC62A7596463b30Dc4e3897E",
|
||||
"0xD4E157c36E7299bB40800e4aE7909DDcA8097f67",
|
||||
"0xA3866A07ABEf3fD0643BD7e1c32600520F465ca8",
|
||||
"0x62f642Ae0Ed7F12Bc40F2a9Bf82ccD0a3F3b7531"
|
||||
],
|
||||
threshold=2,
|
||||
converter_address="0xaB303EF87774D9D259d1098E9aA4dD6c07F69240",
|
||||
agent_header=AgentHeader(
|
||||
version="1.0",
|
||||
message_id="d4d0813f-ceb7-4ce1-8988-12899b26c4b6",
|
||||
source_agent_id="da70f6b3-e580-470f-b88b-caa5369e7778",
|
||||
source_agent_name="APRO Pull Mode Agent",
|
||||
target_agent_id="",
|
||||
timestamp=int(time.time()),
|
||||
message_type=MessageType.Event,
|
||||
priority=Priority.Low,
|
||||
ttl=60 * 60
|
||||
)
|
||||
)
|
||||
|
||||
dynamic_setting = AGENT_SETTINGS
|
||||
dynamic_setting.agent_header.source_agent_id = generate_uuid_v4()
|
||||
dynamic_setting.agent_header.target_agent_id = generate_uuid_v4()
|
||||
dynamic_setting.agent_header.message_id = generate_uuid_v4()
|
||||
user_owner = agent.add_account("0x_user_private_key")
|
||||
result = agent.create_and_register_agent(
|
||||
transmitter="",
|
||||
nonce=None,
|
||||
settings=AGENT_SETTINGS)
|
||||
print("created agent:", result)
|
||||
|
||||
```
|
||||
To verify the data integrity, call the verify method:
|
||||
|
||||
```python
|
||||
from ai_agent.entities import (
|
||||
AgentMessagePayload,
|
||||
Proofs,
|
||||
AgentMetadata,
|
||||
)
|
||||
|
||||
AGENT_CONTRACT = "0xA1903361Ee8Ec35acC7c8951b4008dbE8D12C155"
|
||||
AGENT_SETTING_DIGEST = "0x010038164dba6abffb84eb5cb538850d9bc5d8f815149a371069b3255fd177a4"
|
||||
AGENT_PAYLOAD = AgentMessagePayload(
|
||||
data="0x0006e706cf7ab41fa599311eb3de68be869198ce62aef1cd079475ca50e5b3f60000000000000000000000000000000000000000000000000000000002b1bf0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002a0000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001200003665949c883f9e0f6f002eac32e00bd59dfe6c34e92a91c37d6a8322d6489000000000000000000000000000000000000000000000000000000006762677d000000000000000000000000000000000000000000000000000000006762677d000000000000000000000000000000000000000000000000000003128629ec0800000000000000000000000000000000000000000000000004db732547630000000000000000000000000000000000000000000000000000000000006763b8fd0000000000000000000000000000000000000000000015f0f60671beb95cc0000000000000000000000000000000000000000000000015f083baa654a7b900000000000000000000000000000000000000000000000015f103ec7cb057ea80000000000000000000000000000000000000000000000000000000000000000003b64f7e72208147bb898e8b215d0997967bef0219263726c76995d8a19107d6ba5306a176474f9ccdb1bc5841f97e0592013e404e15b0de0839b81d0efb26179f222e0191269a8560ebd9096707d225bc606d61466b85d8568d7620a3b59a73e800000000000000000000000000000000000000000000000000000000000000037cae0f05c1bf8353eb5db27635f02b40a534d4192099de445764891198231c597a303cd15f302dafbb1263eb6e8e19cbacea985c66c6fed3231fd84a84ebe0276f69f481fe7808c339a04ceb905bb49980846c8ceb89a27b1c09713cb356f773",
|
||||
data_hash="0x53d9f133f1265bd4391fcdf89b63424cbcfd316c8448f76cc515647267ac0a8e",
|
||||
proofs=Proofs(
|
||||
zk_proof="0x",
|
||||
merkle_proof="0x",
|
||||
signature_proof="0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000003b64f7e72208147bb898e8b215d0997967bef0219263726c76995d8a19107d6ba5306a176474f9ccdb1bc5841f97e0592013e404e15b0de0839b81d0efb26179f222e0191269a8560ebd9096707d225bc606d61466b85d8568d7620a3b59a73e800000000000000000000000000000000000000000000000000000000000000037cae0f05c1bf8353eb5db27635f02b40a534d4192099de445764891198231c597a303cd15f302dafbb1263eb6e8e19cbacea985c66c6fed3231fd84a84ebe0276f69f481fe7808c339a04ceb905bb49980846c8ceb89a27b1c09713cb356f7730000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001",
|
||||
),
|
||||
meta_data=AgentMetadata(
|
||||
content_type="0x",
|
||||
encoding="0x",
|
||||
compression="0x"
|
||||
)
|
||||
)
|
||||
user_owner = agent.add_account("0x_user_private_key")
|
||||
result = agent.verify(
|
||||
transmitter=user_owner,
|
||||
nonce=None,
|
||||
agent_contract=AGENT_CONTRACT,
|
||||
settings_digest=AGENT_SETTING_DIGEST,
|
||||
payload=AGENT_PAYLOAD
|
||||
)
|
||||
print("verify:", result)
|
||||
```
|
||||
For more examples, see the [test cases](https://github.com/APRO-com/ai-agent-sdk-python/tree/main/tests).
|
||||
|
||||
|
||||
# Other SDKs
|
||||
|
||||
JAVA: https://github.com/APRO-com/ai-agent-sdk-java
|
||||
|
||||
RUST: https://github.com/APRO-com/ai-agent-sdk-rust
|
||||
|
||||
GOLANG: https://github.com/APRO-com/ai-agent-sdk-go
|
||||
|
||||
# Support
|
||||
|
||||
For issues or feature requests:
|
||||
1. Check existing documentation
|
||||
2. Submit a GitHub issue with relevant details
|
||||
3. Include transaction logs and system info if applicable
|
||||
|
||||
# Contributing
|
||||
|
||||
We welcome pull requests! Refer to the project’s CONTRIBUTING.md and open discussions to coordinate efforts.
|
||||
|
||||
# Credits
|
||||
|
||||
- [APRO](https://www.apro.com/) - Plugin sponsor and partner
|
||||
- [ai-agent-sdk-js](https://github.com/APRO-com/ai-agent-sdk-js) - Underlying agent SDK
|
||||
- [ethers.js](https://docs.ethers.io/) - Transaction and contract interaction
|
||||
- Community contributors for feedback and testing
|
||||
|
||||
For more information about Apro plugin capabilities:
|
||||
|
||||
- [Apro Documentation](https://docs.apro.com/en)
|
||||
|
||||
# License
|
||||
|
||||
This plugin is part of the Eliza project. Refer to the main project repository for licensing details.
|
16
docs/Coco AI/README.md
Normal file
|
@ -0,0 +1,16 @@
|
|||
<img width="1024" src="assets/og-image.gif">
|
||||
|
||||
<!-- TEXT_SECTION:header:END -->
|
||||
|
||||
# Coco AI - Connect & Collaborate
|
||||
|
||||
Coco AI is a unified search platform that connects all your enterprise applications and data—Google Workspace, Dropbox, Confluent Wiki, GitHub, and more—into a single, powerful search interface. This repository contains the **COCO App**, built for both **desktop and mobile**. The app allows users to search and interact with their enterprise data across platforms.
|
||||
|
||||
In addition, COCO offers a **Gen-AI Chat for Teams**—imagine **Deepseek** but tailored to your team’s unique knowledge and internal resources. COCO enhances collaboration by making information instantly accessible and providing AI-driven insights based on your enterprise's specific data.
|
||||
|
||||
# UI
|
||||

|
||||

|
||||

|
||||

|
||||

|
16
docs/Coco AI/README_cn.md
Normal file
|
@ -0,0 +1,16 @@
|
|||
<img width="1024" src="assets/og-image.gif">
|
||||
|
||||
<!-- TEXT_SECTION:header:END -->
|
||||
|
||||
# Coco AI - Connect & Collaborate
|
||||
|
||||
Coco AI 是一个统一的搜索平台,能够将您企业的所有应用程序和数据——包括 Google Workspace、Dropbox、Confluence Wiki、GitHub 等——整合到一个强大而统一的搜索界面中。这个仓库包含了适用于桌面端和移动端的 COCO 应用程序。用户可以通过该应用在不同平台上搜索和操作企业数据。
|
||||
|
||||
此外,Coco 还提供了一个面向团队的生成式人工智能聊天工具——可以将其想象为专为您的团队量身定制的 Deepseek,它能够与团队独特的知识体系和内部资源相结合。Coco 通过即时提供信息访问和基于企业特定数据的人工智能驱动洞察,增强了团队协作能力。
|
||||
|
||||
# UI
|
||||

|
||||

|
||||

|
||||

|
||||

|
BIN
docs/Coco AI/assets/coco-deepseek-1.png
Normal file
After Width: | Height: | Size: 584 KiB |
BIN
docs/Coco AI/assets/coco-deepseek-2.png
Normal file
After Width: | Height: | Size: 543 KiB |
BIN
docs/Coco AI/assets/coco-deepseek-3.png
Normal file
After Width: | Height: | Size: 560 KiB |
BIN
docs/Coco AI/assets/coco-deepseek-4.png
Normal file
After Width: | Height: | Size: 589 KiB |
BIN
docs/Coco AI/assets/coco-deepseek-5.png
Normal file
After Width: | Height: | Size: 560 KiB |
BIN
docs/Coco AI/assets/favicon.png
Normal file
After Width: | Height: | Size: 187 KiB |
BIN
docs/Coco AI/assets/og-image.gif
Normal file
After Width: | Height: | Size: 892 KiB |
|
@ -2,7 +2,7 @@
|
|||
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
---
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# README_cn
|
||||
|
||||

|
||||

|
||||
|
||||
---
|
||||
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 75 KiB |
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 105 KiB |
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 1.6 KiB |
11
docs/Typral/README.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
<img src="https://www.typral.com/_next/image?url=%2Ffavicon.ico&w=96&q=75" width="64" height="auto" />
|
||||
|
||||
# [Typral](https://www.typral.com)
|
||||
|
||||
Fast AI writer assistant - Let AI help you quickly improve article, paper, text...
|
||||
|
||||
## UI
|
||||
<img src="./assets/screenshot1.png" width="360" height="auto" />
|
||||
|
||||
## 配置 Deepseek API
|
||||
<img src="./assets/screenshot2.png" width="360" height="auto" />
|
11
docs/Typral/README_cn.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
<img src="https://www.typral.com/_next/image?url=%2Ffavicon.ico&w=96&q=75" width="64" height="auto" />
|
||||
|
||||
# [Typral](https://www.typral.com)
|
||||
|
||||
超快的AI写作助手 - 让AI帮你快速优化日报,文章,文本等等...
|
||||
|
||||
## UI
|
||||
<img src="./assets/screenshot1.png" width="360" height="auto" />
|
||||
|
||||
## 配置 Deepseek API
|
||||
<img src="./assets/screenshot2.png" width="360" height="auto" />
|
BIN
docs/Typral/assets/screenshot1.png
Normal file
After Width: | Height: | Size: 113 KiB |
BIN
docs/Typral/assets/screenshot2.png
Normal file
After Width: | Height: | Size: 36 KiB |
10
docs/anything-copilot/README.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
# [**Anything Copilot**](https://github.com/baotlake/anything-copilot)
|
||||
|
||||
> <sub></sub> Anything Copilot is a browser extension that enables seamless access to mainstream AI tools directly from your sidebar. For instance, you can open AI chat interfaces like DeepSeek within the sidebar, effectively transforming it into your AI Copilot that remains accessible while you browse.
|
||||
|
||||
**Install in Chrome Web Store**: [Anything Copilot - A more powerful sidebar, split-screen, and AI assistant](https://chromewebstore.google.com/detail/anything-copilot-a-more-p/lilckelmopbcffmglfmfhelaajhjpcff)
|
||||
|
||||
**Install in Edge Add-ons**: [Anything Copilot - A more powerful sidebar, split-screen, and AI assistant](https://microsoftedge.microsoft.com/addons/detail/anything-copilot-a-more/lbeehbkcmjaopnlccpjcdgamcabhnanl)
|
||||
|
||||
|
||||

|
10
docs/anything-copilot/README_cn.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
# [**Anything Copilot**](https://github.com/baotlake/anything-copilot)
|
||||
|
||||
> <sub></sub> Anything Copilot 是一款可以让你在侧边栏无缝使用任意主流AI工具的浏览器插件。例如,你可以在侧边栏中打开 DeepSeek 等 AI 聊天页面 ,把 DeekSeek 变成你的侧边栏中的 AI Copilot 。
|
||||
|
||||
**在 Chrome Web Store 安装**: [Anything Copilot - 更强大的侧边栏,分屏,AI 助手](https://chromewebstore.google.com/detail/anything-copilot-%E6%9B%B4%E5%BC%BA%E5%A4%A7%E7%9A%84%E4%BE%A7%E8%BE%B9%E6%A0%8F%EF%BC%8C/lilckelmopbcffmglfmfhelaajhjpcff?hl=zh)
|
||||
|
||||
**在 Edge Add-ons 安装**: [Anything Copilot - 更强大的侧边栏,分屏,AI 助手](https://microsoftedge.microsoft.com/addons/detail/anything-copilot-%E6%9B%B4%E5%BC%BA%E5%A4%A7%E7%9A%84%E4%BE%A7%E8%BE%B9/lbeehbkcmjaopnlccpjcdgamcabhnanl?hl=zh)
|
||||
|
||||
|
||||

|
BIN
docs/anything-copilot/assets/Screenshot_DeepSeek.webp
Normal file
After Width: | Height: | Size: 56 KiB |
5
docs/anything-copilot/assets/logo.svg
Normal file
|
@ -0,0 +1,5 @@
|
|||
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M29.5 12.2173H2.5C1.67157 12.2173 1 12.8889 1 13.7173V18.2717C1 19.1002 1.67157 19.7717 2.5 19.7717H29.5C30.3284 19.7717 31 19.1002 31 18.2717V13.7173C31 12.8889 30.3284 12.2173 29.5 12.2173Z" fill="#FF9900"/>
|
||||
<path d="M26.0146 25.9215L12.5064 2.35484C12.0945 1.63611 11.18 1.39108 10.4638 1.80754L6.56198 4.07661C5.84584 4.49307 5.59927 5.41333 6.01124 6.13206L19.5194 29.6987C19.9314 30.4174 20.8459 30.6624 21.562 30.246L25.4639 27.9769C26.18 27.5604 26.4266 26.6402 26.0146 25.9215Z" fill="#FF5C00"/>
|
||||
<path d="M25.4509 4.02304C26.167 4.4395 26.4136 5.35975 26.0016 6.07849L12.4935 29.645C12.0816 30.3638 11.167 30.6088 10.4509 30.1924L6.54907 27.9233C5.83294 27.5068 5.58635 26.5865 5.99833 25.8679L19.5065 2.30126C19.9184 1.58254 20.833 1.3375 21.5491 1.75396L25.4509 4.02304Z" fill="#FF0000"/>
|
||||
</svg>
|
After Width: | Height: | Size: 912 B |
12
docs/anything-copilot/assets/logo_16x16.svg
Normal file
|
@ -0,0 +1,12 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_544_7)">
|
||||
<path d="M14.75 6.10864H1.25C0.835786 6.10864 0.5 6.44443 0.5 6.85864V9.13586C0.5 9.55008 0.835786 9.88586 1.25 9.88586H14.75C15.1642 9.88586 15.5 9.55008 15.5 9.13586V6.85864C15.5 6.44443 15.1642 6.10864 14.75 6.10864Z" fill="#FF9900"/>
|
||||
<path d="M13.0073 12.9606L6.25322 1.1773C6.04723 0.817934 5.58998 0.695416 5.23191 0.903647L3.28099 2.03818C2.92292 2.24642 2.79963 2.70654 3.00562 3.06591L9.7597 14.8492C9.96569 15.2086 10.4229 15.3311 10.781 15.1229L12.7319 13.9883C13.09 13.7801 13.2133 13.32 13.0073 12.9606Z" fill="#FF5C00"/>
|
||||
<path d="M12.7254 2.01164C13.0835 2.21987 13.2068 2.68 13.0008 3.03937L6.24676 14.8226C6.04078 15.182 5.58352 15.3045 5.22545 15.0963L3.27453 13.9618C2.91647 13.7535 2.79318 13.2934 2.99916 12.9341L9.75325 1.15075C9.95918 0.79139 10.4165 0.668871 10.7746 0.877102L12.7254 2.01164Z" fill="#FF0000"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_544_7">
|
||||
<rect width="16" height="16" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 1 KiB |
23
docs/autoflow/README.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
# Autoflow
|
||||
|
||||
<a href="https://trendshift.io/repositories/12294" target="_blank"><img src="https://trendshift.io/api/badge/repositories/12294" alt="pingcap%2Fautoflow | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
||||
|
||||
[AutoFlow](https://github.com/pingcap/autoflow) is an open-source knowledge base tool based on GraphRAG (Graph-based Retrieval-Augmented Generation), built on [TiDB](https://www.pingcap.com/ai?utm_source=tidb.ai&utm_medium=community) Vector, LlamaIndex, and DSPy. It provides a Perplexity-like search interface and allows easy integration of AutoFlow's conversational search window into your website by embedding a simple JavaScript snippet.
|
||||
|
||||
## UI
|
||||
|
||||
1. **Perplexity-style Conversational Search page**: Our platform features an advanced built-in website crawler, designed to elevate your browsing experience. This crawler effortlessly navigates official and documentation sites, ensuring comprehensive coverage and streamlined search processes through sitemap URL scraping.
|
||||
|
||||

|
||||
|
||||
2. **Embeddable JavaScript Snippet**: Integrate our conversational search window effortlessly into your website by copying and embedding a simple JavaScript code snippet. This widget, typically placed at the bottom right corner of your site, facilitates instant responses to product-related queries.
|
||||
|
||||

|
||||
|
||||
## Integrate with Deepseek API
|
||||
|
||||
- Click the tab `Models` then `LLMs` to enter the LLM model management page.
|
||||
- Click the `Create` button to create a new LLM model.
|
||||
- Input data like below, then click the `Create LLM` button.
|
||||
|
||||

|
23
docs/autoflow/README_cn.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
# Autoflow
|
||||
|
||||
<a href="https://trendshift.io/repositories/12294" target="_blank"><img src="https://trendshift.io/api/badge/repositories/12294" alt="pingcap%2Fautoflow | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
||||
|
||||
[AutoFlow](https://github.com/pingcap/autoflow) 是一个基于 GraphRAG(基于图的检索增强生成)的开源知识库工具,构建于 [TiDB](https://www.pingcap.com/ai?utm_source=tidb.ai&utm_medium=community) Vector、LlamaIndex 和 DSPy 之上。它提供类似 Perplexity 的搜索界面,并允许通过嵌入简单的 JavaScript 代码片段,将 AutoFlow 的对话式搜索窗口轻松集成到您的网站中。
|
||||
|
||||
## UI 界面
|
||||
|
||||
1. **Perplexity 风格的对话式搜索页面**:我们的平台配备了高级内置网站爬虫,旨在提升您的浏览体验。该爬虫能够轻松抓取官方网站和文档站点,通过 sitemap 抓取,实现全面覆盖和高效搜索。
|
||||
|
||||

|
||||
|
||||
2. **可嵌入的 JavaScript 代码片段**:通过复制并嵌入一段简单的 JavaScript 代码,即可轻松将我们的对话式搜索窗口集成到您的网站中。此小部件通常放置在网站右下角,可即时回答与产品相关的查询。
|
||||
|
||||

|
||||
|
||||
## 集成 Deepseek API
|
||||
|
||||
- 点击 `Models` 选项卡,然后进入 `LLMs` 以进入 LLM 模型管理页面。
|
||||
- 点击 `Create` 按钮创建一个新的 LLM 模型。
|
||||
- 按照下方示例输入数据,然后点击 `Create LLM` 按钮。
|
||||
|
||||

|
158
docs/codegate/README.md
Normal file
|
@ -0,0 +1,158 @@
|
|||
# CodeGate: secure AI code generation
|
||||
|
||||
CodeGate is a **local gateway** that makes AI agents and coding assistants safer. It
|
||||
ensures AI-generated recommendations adhere to best practices while safeguarding
|
||||
your code's integrity and protecting your privacy. With CodeGate, you can
|
||||
confidently leverage AI in your development workflow without sacrificing
|
||||
security or productivity.
|
||||
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stacklok/codegate/main/static/diagram-dark.png">
|
||||
<img alt="CodeGate dashboard" src="https://github.com/stacklok/codegate/raw/main/static/diagram-light.png" width="1100px" style="max-width: 100%;">
|
||||
</picture>
|
||||
|
||||
---
|
||||
## ✨ Why choose CodeGate?
|
||||
|
||||
AI coding assistants are powerful, but they can inadvertently introduce risks.
|
||||
CodeGate protects your development process by:
|
||||
|
||||
- 🔒 Preventing accidental exposure of secrets and sensitive data
|
||||
- 🛡️ Ensuring AI suggestions follow secure coding practices
|
||||
- ⚠️ Blocking recommendations of known malicious or deprecated libraries
|
||||
- 🔍 Providing real-time security analysis of AI suggestions
|
||||
|
||||
---
|
||||
## 🚀 Quickstart with 🐋 Deepseek!
|
||||
|
||||
### Prerequisites
|
||||
|
||||
CodeGate is distributed as a Docker container. You need a container runtime like
|
||||
Docker Desktop or Docker Engine. Podman and Podman Desktop are also supported.
|
||||
CodeGate works on Windows, macOS, and Linux operating systems with x86_64 and
|
||||
arm64 (ARM and Apple Silicon) CPU architectures.
|
||||
|
||||
These instructions assume the `docker` CLI is available. If you use Podman,
|
||||
replace `docker` with `podman` in all commands.
|
||||
|
||||
### Installation
|
||||
|
||||
To start CodeGate, run this simple command (making sure to pass in the
|
||||
deepseek.com URL as the `CODEGATE_PROVIDER_OPENAI_URL` environment variable):
|
||||
|
||||
```bash
|
||||
docker run --name codegate -d -p 8989:8989 -p 9090:9090 -p 8990:8990 \
|
||||
-e CODEGATE_PROVIDER_OPENAI_URL=https://api.deepseek.com \
|
||||
--mount type=volume,src=codegate_volume,dst=/app/codegate_volume \
|
||||
--restart unless-stopped ghcr.io/stacklok/codegate:latest
|
||||
```
|
||||
|
||||
That’s it! CodeGate is now running locally.
|
||||
|
||||
### Using CodeGate and 🐋 Deepseek within Continue
|
||||
|
||||
To use Continue with CodeGate, open the Continue settings and add
|
||||
the following configuration:
|
||||
|
||||
```json
|
||||
{
|
||||
"title": "Deepseek-r1",
|
||||
"provider": "openai",
|
||||
"model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B",
|
||||
"apiKey": "YOUR_DEEPSEEK_API_KEY",
|
||||
"apiBase": "http://localhost:8989/openai",
|
||||
}
|
||||
```
|
||||
|
||||
Just use Continue as normal, and you know longer have to worry about security
|
||||
or privacy concerns!
|
||||
|
||||

|
||||
|
||||
|
||||
### Using CodeGate and 🐋 Deepseek with Cline
|
||||
|
||||
To use Cline with CodeGate, open the Cline settings and add
|
||||
the following configuration:
|
||||
|
||||

|
||||
|
||||
Just use Cline as normal, and you know longer have to worry about security
|
||||
or privacy concerns!
|
||||
|
||||

|
||||
|
||||
---
|
||||
## 🖥️ Dashboard
|
||||
|
||||
CodeGate includes a web dashboard that provides:
|
||||
|
||||
- A view of **security risks** detected by CodeGate
|
||||
- A **history of interactions** between your AI coding assistant and your LLM
|
||||
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="./static/dashboard-dark.webp">
|
||||
<img alt="CodeGate dashboard" src="./static/dashboard-light.webp" width="1200px" style="max-width: 100%;">
|
||||
</picture>
|
||||
|
||||
### Accessing the dashboard
|
||||
|
||||
Open [http://localhost:9090](http://localhost:9090) in your web browser to
|
||||
access the dashboard.
|
||||
|
||||
To learn more, visit the
|
||||
[CodeGate Dashboard documentation](https://docs.codegate.ai/how-to/dashboard).
|
||||
|
||||
---
|
||||
## 🔐 Features
|
||||
|
||||
### Secrets encryption
|
||||
|
||||
CodeGate helps you protect sensitive information from being accidentally exposed
|
||||
to AI models and third-party AI provider systems by redacting detected secrets
|
||||
from your prompts using encryption.
|
||||
[Learn more](https://docs.codegate.ai/features/secrets-encryption)
|
||||
|
||||
### Dependency risk awareness
|
||||
|
||||
LLMs’ knowledge cutoff date is often months or even years in the past. They
|
||||
might suggest outdated, vulnerable, or non-existent packages (hallucinations),
|
||||
exposing you and your users to security risks.
|
||||
|
||||
CodeGate scans direct, transitive, and development dependencies in your package
|
||||
definition files, installation scripts, and source code imports that you supply
|
||||
as context to an LLM.
|
||||
[Learn more](https://docs.codegate.ai/features/dependency-risk)
|
||||
|
||||
### Security reviews
|
||||
|
||||
CodeGate performs security-centric code reviews, identifying insecure patterns
|
||||
or potential vulnerabilities to help you adopt more secure coding practices.
|
||||
[Learn more](https://docs.codegate.ai/features/security-reviews)
|
||||
|
||||
---
|
||||
## 🛡️ Privacy first
|
||||
|
||||
Unlike other tools, with CodeGate **your code never leaves your machine**.
|
||||
CodeGate is built with privacy at its core:
|
||||
|
||||
- 🏠 **Everything stays local**
|
||||
- 🚫 **No external data collection**
|
||||
- 🔐 **No calling home or telemetry**
|
||||
- 💪 **Complete control over your data**
|
||||
|
||||
---
|
||||
## 🛠️ Development
|
||||
|
||||
Are you a developer looking to contribute? Dive into our technical resources:
|
||||
|
||||
- [Development guide](https://github.com/stacklok/codegate/blob/main/docs/development.md)
|
||||
- [CLI commands and flags](https://github.com/stacklok/codegate/blob/main/docs/cli.md)
|
||||
- [Configuration system](https://github.com/stacklok/codegate/blob/main/docs/configuration.md)
|
||||
- [Logging system](https://github.com/stacklok/codegate/blob/main/docs/logging.md)
|
||||
|
||||
---
|
||||
## 📜 License
|
||||
|
||||
CodeGate is licensed under the terms specified in the
|
||||
[LICENSE file](https://github.com/stacklok/codegate/blob/main/LICENSE).
|
132
docs/codegate/README_cn.md
Normal file
|
@ -0,0 +1,132 @@
|
|||
# CodeGate:安全的 AI 代码生成
|
||||
|
||||
CodeGate 是一个**本地代理**,可以让 AI 代理和编码助手更加安全。它确保 AI 生成的建议遵循最佳实践,同时保护您的代码完整性和隐私。使用 CodeGate,您可以在开发工作流程中自信地利用 AI,而不会牺牲安全性或生产力。
|
||||
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stacklok/codegate/main/static/diagram-dark.png">
|
||||
<img alt="CodeGate dashboard" src="https://github.com/stacklok/codegate/raw/main/static/diagram-light.png" width="1100px" style="max-width: 100%;">
|
||||
</picture>
|
||||
|
||||
---
|
||||
## ✨ 为什么选择 CodeGate?
|
||||
|
||||
AI 编码助手功能强大,但可能会无意中带来风险。CodeGate 通过以下方式保护您的开发过程:
|
||||
|
||||
- 🔒 防止意外泄露机密和敏感数据
|
||||
- 🛡️ 确保 AI 建议遵循安全编码实践
|
||||
- ⚠️ 阻止推荐已知的恶意或已弃用的库
|
||||
- 🔍 提供 AI 建议的实时安全分析
|
||||
|
||||
---
|
||||
## 🚀 使用 🐋 Deepseek 快速开始!
|
||||
|
||||
### 前提条件
|
||||
|
||||
CodeGate 以 Docker 容器的形式分发。您需要一个容器运行时,如 Docker Desktop 或 Docker Engine。同时也支持 Podman 和 Podman Desktop。CodeGate 可在 Windows、macOS 和 Linux 操作系统上运行,支持 x86_64 和 arm64(ARM 和 Apple Silicon)CPU 架构。
|
||||
|
||||
以下说明基于 `docker` CLI 可用的前提。如果您使用 Podman,请在所有命令中将 `docker` 替换为 `podman`。
|
||||
|
||||
### 安装
|
||||
|
||||
要启动 CodeGate,运行这个简单的命令(确保将 deepseek.com URL 作为 `CODEGATE_PROVIDER_OPENAI_URL` 环境变量传入):
|
||||
|
||||
```bash
|
||||
docker run --name codegate -d -p 8989:8989 -p 9090:9090 -p 8990:8990 \
|
||||
-e CODEGATE_PROVIDER_OPENAI_URL=https://api.deepseek.com \
|
||||
--mount type=volume,src=codegate_volume,dst=/app/codegate_volume \
|
||||
--restart unless-stopped ghcr.io/stacklok/codegate:latest
|
||||
```
|
||||
|
||||
就是这样!CodeGate 现在在本地运行了。
|
||||
|
||||
### 在 Continue 中使用 CodeGate 和 🐋 Deepseek
|
||||
|
||||
要在 Continue 中使用 CodeGate,打开 Continue 设置并添加以下配置:
|
||||
|
||||
```json
|
||||
{
|
||||
"title": "Deepseek-r1",
|
||||
"provider": "openai",
|
||||
"model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B",
|
||||
"apiKey": "YOUR_DEEPSEEK_API_KEY",
|
||||
"apiBase": "http://localhost:8989/openai",
|
||||
}
|
||||
```
|
||||
|
||||
像往常一样使用 Continue,您不再需要担心安全或隐私问题!
|
||||
|
||||
)
|
||||
|
||||
### 在 Cline 中使用 CodeGate 和 🐋 Deepseek
|
||||
|
||||
要在 Cline 中使用 CodeGate,打开 Cline 设置并添加以下配置:
|
||||
|
||||

|
||||
|
||||
像往常一样使用 Cline,您不再需要担心安全或隐私问题!
|
||||
|
||||

|
||||
|
||||
---
|
||||
## 🖥️ 仪表板
|
||||
|
||||
CodeGate 包含一个 Web 仪表板,提供:
|
||||
|
||||
- CodeGate 检测到的**安全风险**视图
|
||||
- AI 编码助手与 LLM 之间的**交互历史**
|
||||
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="./static/dashboard-dark.webp">
|
||||
<img alt="CodeGate dashboard" src="./static/dashboard-light.webp" width="1200px" style="max-width: 100%;">
|
||||
</picture>
|
||||
|
||||
### 访问仪表板
|
||||
|
||||
在您的网络浏览器中打开 [http://localhost:9090](http://localhost:9090) 以访问仪表板。
|
||||
|
||||
要了解更多信息,请访问 [CodeGate 仪表板文档](https://docs.codegate.ai/how-to/dashboard)。
|
||||
|
||||
---
|
||||
## 🔐 功能
|
||||
|
||||
### 机密加密
|
||||
|
||||
CodeGate 通过使用加密对检测到的机密进行编辑,帮助您防止敏感信息意外暴露给 AI 模型和第三方 AI 提供商系统。
|
||||
[了解更多](https://docs.codegate.ai/features/secrets-encryption)
|
||||
|
||||
### 依赖风险意识
|
||||
|
||||
LLM 的知识截止日期通常是几个月甚至几年前。它们可能会建议过时的、易受攻击的或不存在的包(幻觉),使您和您的用户面临安全风险。
|
||||
|
||||
CodeGate 扫描您作为上下文提供给 LLM 的包定义文件、安装脚本和源代码导入中的直接依赖、传递依赖和开发依赖。
|
||||
[了解更多](https://docs.codegate.ai/features/dependency-risk)
|
||||
|
||||
### 安全审查
|
||||
|
||||
CodeGate 执行以安全为中心的代码审查,识别不安全的模式或潜在的漏洞,帮助您采用更安全的编码实践。
|
||||
[了解更多](https://docs.codegate.ai/features/security-reviews)
|
||||
|
||||
---
|
||||
## 🛡️ 隐私优先
|
||||
|
||||
与其他工具不同,使用 CodeGate **您的代码永远不会离开您的机器**。CodeGate 以隐私为核心构建:
|
||||
|
||||
- 🏠 **所有数据均本地存储**
|
||||
- 🚫 **没有外部数据收集**
|
||||
- 🔐 **没有回传或遥测**
|
||||
- 💪 **完全控制您的数据**
|
||||
|
||||
---
|
||||
## 🛠️ 开发
|
||||
|
||||
您是想要贡献的开发者吗?深入了解我们的技术资源:
|
||||
|
||||
- [开发指南](https://github.com/stacklok/codegate/blob/main/docs/development.md)
|
||||
- [CLI 命令和标志](https://github.com/stacklok/codegate/blob/main/docs/cli.md)
|
||||
- [配置系统](https://github.com/stacklok/codegate/blob/main/docs/configuration.md)
|
||||
- [日志系统](https://github.com/stacklok/codegate/blob/main/docs/logging.md)
|
||||
|
||||
---
|
||||
## 📜 许可证
|
||||
|
||||
CodeGate 根据 [LICENSE 文件](https://github.com/stacklok/codegate/blob/main/LICENSE) 中指定的条款获得许可。
|
BIN
docs/codegate/assets/cline-screen.png
Normal file
After Width: | Height: | Size: 645 KiB |
BIN
docs/codegate/assets/cline-settings.png
Normal file
After Width: | Height: | Size: 210 KiB |
BIN
docs/codegate/assets/codegate.png
Normal file
After Width: | Height: | Size: 8.2 KiB |
BIN
docs/codegate/assets/continue-screen.png
Normal file
After Width: | Height: | Size: 744 KiB |
182
docs/minuet-ai.nvim/README.md
Normal file
|
@ -0,0 +1,182 @@
|
|||
|
||||
# Minuet AI
|
||||
|
||||
Minuet AI: Dance with Intelligence in Your Code 💃.
|
||||
|
||||
`Minuet-ai` brings the grace and harmony of a minuet to your coding process.
|
||||
Just as dancers move during a minuet.
|
||||
|
||||
# Features
|
||||
|
||||
- AI-powered code completion with dual modes:
|
||||
- Specialized prompts and various enhancements for chat-based LLMs on code completion tasks.
|
||||
- Fill-in-the-middle (FIM) completion for compatible models (DeepSeek,
|
||||
Codestral, Qwen, and others).
|
||||
- Support for multiple AI providers (OpenAI, Claude, Gemini, Codestral, Ollama, and
|
||||
OpenAI-compatible services).
|
||||
- Customizable configuration options.
|
||||
- Streaming support to enable completion delivery even with slower LLMs.
|
||||
- Support `nvim-cmp`, `blink-cmp`, `virtual text` frontend.
|
||||
|
||||
# Requirements
|
||||
|
||||
- Neovim 0.10+.
|
||||
- [plenary.nvim](https://github.com/nvim-lua/plenary.nvim)
|
||||
- optional: [nvim-cmp](https://github.com/hrsh7th/nvim-cmp)
|
||||
- optional: [blink.cmp](https://github.com/Saghen/blink.cmp)
|
||||
- An API key for at least one of the supported AI providers
|
||||
|
||||
# Installation
|
||||
|
||||
**Lazy.nvim**:
|
||||
|
||||
```lua
|
||||
specs = {
|
||||
{
|
||||
'milanglacier/minuet-ai.nvim',
|
||||
config = function()
|
||||
require('minuet').setup {
|
||||
-- Your configuration options here
|
||||
}
|
||||
end,
|
||||
},
|
||||
{ 'nvim-lua/plenary.nvim' },
|
||||
-- optional, if you are using virtual-text frontend, nvim-cmp is not
|
||||
-- required.
|
||||
{ 'hrsh7th/nvim-cmp' },
|
||||
-- optional, if you are using virtual-text frontend, blink is not required.
|
||||
{ 'Saghen/blink.cmp' },
|
||||
}
|
||||
```
|
||||
|
||||
**Rocks.nvim**:
|
||||
|
||||
`Minuet` is available on luarocks.org. Simply run `Rocks install
|
||||
minuet-ai.nvim` to install it like any other luarocks package.
|
||||
|
||||
**Setting up with virtual text**:
|
||||
|
||||
```lua
|
||||
require('minuet').setup {
|
||||
virtualtext = {
|
||||
auto_trigger_ft = {},
|
||||
keymap = {
|
||||
-- accept whole completion
|
||||
accept = '<A-A>',
|
||||
-- accept one line
|
||||
accept_line = '<A-a>',
|
||||
-- accept n lines (prompts for number)
|
||||
-- e.g. "A-z 2 CR" will accept 2 lines
|
||||
accept_n_lines = '<A-z>',
|
||||
-- Cycle to prev completion item, or manually invoke completion
|
||||
prev = '<A-[>',
|
||||
-- Cycle to next completion item, or manually invoke completion
|
||||
next = '<A-]>',
|
||||
dismiss = '<A-e>',
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
**Setting up with nvim-cmp**:
|
||||
|
||||
<details>
|
||||
|
||||
```lua
|
||||
require('cmp').setup {
|
||||
sources = {
|
||||
{
|
||||
-- Include minuet as a source to enable autocompletion
|
||||
{ name = 'minuet' },
|
||||
-- and your other sources
|
||||
}
|
||||
},
|
||||
performance = {
|
||||
-- It is recommended to increase the timeout duration due to
|
||||
-- the typically slower response speed of LLMs compared to
|
||||
-- other completion sources. This is not needed when you only
|
||||
-- need manual completion.
|
||||
fetching_timeout = 2000,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
-- If you wish to invoke completion manually,
|
||||
-- The following configuration binds `A-y` key
|
||||
-- to invoke the configuration manually.
|
||||
require('cmp').setup {
|
||||
mapping = {
|
||||
["<A-y>"] = require('minuet').make_cmp_map()
|
||||
-- and your other keymappings
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
**Setting up with blink-cmp**:
|
||||
|
||||
<details>
|
||||
|
||||
```lua
|
||||
require('blink-cmp').setup {
|
||||
keymap = {
|
||||
-- Manually invoke minuet completion.
|
||||
['<A-y>'] = require('minuet').make_blink_map(),
|
||||
},
|
||||
sources = {
|
||||
-- Enable minuet for autocomplete
|
||||
default = { 'lsp', 'path', 'buffer', 'snippets', 'minuet' },
|
||||
-- For manual completion only, remove 'minuet' from default
|
||||
providers = {
|
||||
minuet = {
|
||||
name = 'minuet',
|
||||
module = 'minuet.blink',
|
||||
score_offset = 8, -- Gives minuet higher priority among suggestions
|
||||
},
|
||||
},
|
||||
},
|
||||
-- Recommended to avoid unnecessary request
|
||||
completion = { trigger = { prefetch_on_insert = false } },
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
**LLM Provider Examples**:
|
||||
|
||||
**Deepseek**:
|
||||
|
||||
```lua
|
||||
-- you can use deepseek with both openai_fim_compatible or openai_compatible provider
|
||||
require('minuet').setup {
|
||||
provider = 'openai_fim_compatible',
|
||||
provider_options = {
|
||||
openai_fim_compatible = {
|
||||
api_key = 'DEEPSEEK_API_KEY',
|
||||
name = 'deepseek',
|
||||
optional = {
|
||||
max_tokens = 256,
|
||||
top_p = 0.9,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
-- or
|
||||
require('minuet').setup {
|
||||
provider = 'openai_compatible',
|
||||
provider_options = {
|
||||
openai_compatible = {
|
||||
end_point = 'https://api.deepseek.com/v1/chat/completions',
|
||||
api_key = 'DEEPSEEK_API_KEY',
|
||||
name = 'deepseek',
|
||||
optional = {
|
||||
max_tokens = 256,
|
||||
top_p = 0.9,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
172
docs/minuet-ai.nvim/README_cn.md
Normal file
|
@ -0,0 +1,172 @@
|
|||
# Minuet AI
|
||||
|
||||
Minuet AI:在您的代码中翩翩起舞,挥洒智能 💃。
|
||||
|
||||
`Minuet-ai` 将小步舞曲的优雅与和谐带入您的编码流程。正如舞者在小步舞曲中舞动一样。
|
||||
|
||||
# 特性
|
||||
|
||||
- 基于 AI 的代码补全,提供双重模式:
|
||||
- 针对代码补全任务,为基于聊天的 LLMs 提供专门的提示和各种增强功能。
|
||||
- 针对兼容的模型(DeepSeek、Codestral、Qwen 等)提供中间填充 (FIM) 补全。
|
||||
- 支持多种 AI 提供商(OpenAI、Claude、Gemini、Codestral、Ollama 和兼容 OpenAI 的服务)。
|
||||
- 可自定义配置选项。
|
||||
- 支持流式传输,即使使用较慢的 LLMs 也能实现补全的交付。
|
||||
- 支持 `nvim-cmp`、`blink-cmp`、`virtual text` 前端。
|
||||
|
||||
# 要求
|
||||
|
||||
- Neovim 0.10+。
|
||||
- [plenary.nvim](https://github.com/nvim-lua/plenary.nvim)
|
||||
- 可选: [nvim-cmp](https://github.com/hrsh7th/nvim-cmp)
|
||||
- 可选: [blink.cmp](https://github.com/Saghen/blink.cmp)
|
||||
- 至少一个受支持的 AI 提供商的 API 密钥
|
||||
|
||||
# 安装
|
||||
|
||||
**Lazy.nvim:**
|
||||
|
||||
```lua
|
||||
specs = {
|
||||
{
|
||||
'milanglacier/minuet-ai.nvim',
|
||||
config = function()
|
||||
require('minuet').setup {
|
||||
-- 在此处配置您的选项
|
||||
}
|
||||
end,
|
||||
},
|
||||
{ 'nvim-lua/plenary.nvim' },
|
||||
-- 可选,如果您使用 virtual-text 前端,则不需要 nvim-cmp。
|
||||
{ 'hrsh7th/nvim-cmp' },
|
||||
-- 可选,如果您使用 virtual-text 前端,则不需要 blink。
|
||||
{ 'Saghen/blink.cmp' },
|
||||
}
|
||||
```
|
||||
|
||||
**Rocks.nvim:**
|
||||
|
||||
`Minuet` 可在 luarocks.org 上获取。只需运行 `Rocks install minuet-ai.nvim` 即可像安装其他 luarocks 包一样安装它。
|
||||
|
||||
**使用 virtual text 进行设置:**
|
||||
|
||||
```lua
|
||||
require('minuet').setup {
|
||||
virtualtext = {
|
||||
auto_trigger_ft = {},
|
||||
keymap = {
|
||||
-- 接受完整补全
|
||||
accept = '<A-A>',
|
||||
-- 接受一行
|
||||
accept_line = '<A-a>',
|
||||
-- 接受 n 行(提示输入数字)
|
||||
-- 例如,“A-z 2 CR”将接受 2 行
|
||||
accept_n_lines = '<A-z>',
|
||||
-- 切换到上一个补全项,或手动调用补全
|
||||
prev = '<A-[>',
|
||||
-- 切换到下一个补全项,或手动调用补全
|
||||
next = '<A-]>',
|
||||
dismiss = '<A-e>',
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
**使用 nvim-cmp 进行设置:**
|
||||
|
||||
<details>
|
||||
|
||||
```lua
|
||||
require('cmp').setup {
|
||||
sources = {
|
||||
{
|
||||
-- 包含 minuet 作为源以启用自动补全
|
||||
{ name = 'minuet' },
|
||||
-- 和您的其他来源
|
||||
}
|
||||
},
|
||||
performance = {
|
||||
-- 建议增加超时时间,因为与其他补全来源相比,LLMs 的响应速度通常较慢。如果您只需要手动补全,则不需要此设置。
|
||||
fetching_timeout = 2000,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
-- 如果你希望手动调用补全,
|
||||
-- 以下配置将 `A-y` 键绑定到手动调用配置。
|
||||
require('cmp').setup {
|
||||
mapping = {
|
||||
["<A-y>"] = require('minuet').make_cmp_map()
|
||||
-- 和您的其他键映射
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
**使用 blink-cmp 进行设置:**
|
||||
|
||||
<details>
|
||||
|
||||
```lua
|
||||
require('blink-cmp').setup {
|
||||
keymap = {
|
||||
-- 手动调用 minuet 补全。
|
||||
['<A-y>'] = require('minuet').make_blink_map(),
|
||||
},
|
||||
sources = {
|
||||
-- 启用 minuet 进行自动补全
|
||||
default = { 'lsp', 'path', 'buffer', 'snippets', 'minuet' },
|
||||
-- 仅对于手动补全,从默认值中删除 'minuet'
|
||||
providers = {
|
||||
minuet = {
|
||||
name = 'minuet',
|
||||
module = 'minuet.blink',
|
||||
score_offset = 8, -- 在建议中赋予 minuet 更高的优先级
|
||||
},
|
||||
},
|
||||
},
|
||||
-- 建议避免不必要的请求
|
||||
completion = { trigger = { prefetch_on_insert = false } },
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
**LLM 提供商示例:**
|
||||
|
||||
**Deepseek:**
|
||||
|
||||
```lua
|
||||
-- 你可以使用 openai_fim_compatible 或 openai_compatible 提供商来使用 deepseek
|
||||
require('minuet').setup {
|
||||
provider = 'openai_fim_compatible',
|
||||
provider_options = {
|
||||
openai_fim_compatible = {
|
||||
api_key = 'DEEPSEEK_API_KEY',
|
||||
name = 'deepseek',
|
||||
optional = {
|
||||
max_tokens = 256,
|
||||
top_p = 0.9,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
-- 或者
|
||||
require('minuet').setup {
|
||||
provider = 'openai_compatible',
|
||||
provider_options = {
|
||||
openai_compatible = {
|
||||
end_point = 'https://api.deepseek.com/v1/chat/completions',
|
||||
api_key = 'DEEPSEEK_API_KEY',
|
||||
name = 'deepseek',
|
||||
optional = {
|
||||
max_tokens = 256,
|
||||
top_p = 0.9,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
47
docs/ruzhiai_note/README.md
Normal file
|
@ -0,0 +1,47 @@
|
|||
<div align="center">
|
||||
<img src="./assets/play_store_512.png" width="64" height="auto" />
|
||||
</div>
|
||||
|
||||
# RuZhi AI Notes
|
||||
|
||||
RuZhi AI Notes is an intelligent AI knowledge management tool dedicated to providing users with one-stop knowledge management and application services, including AI search and exploration, AI results to notes conversion, note management and organization, knowledge presentation and sharing, etc.
|
||||
|
||||
## Core Advantages
|
||||
|
||||
### 1. Powerful AI Model Support
|
||||
- Integrated with DeepSeek thinking model
|
||||
- According to user feedback, compared to similar products, our model:
|
||||
- More stable
|
||||
- Higher output quality
|
||||
- Can integrate with enterprise internal knowledge bases
|
||||
|
||||
<img src="./assets/deepseek_used.jpg" width="100%" height="auto" />
|
||||
|
||||
### 2. Convenient Content Management
|
||||
- One-click save AI conversation content to notes
|
||||
- Support for various export formats:
|
||||
- Markdown
|
||||
- Word documents
|
||||
- PDF files
|
||||
- PPT presentations
|
||||
- Resume templates
|
||||
and more formats
|
||||
|
||||
### 3. Upcoming Features
|
||||
- Task management list
|
||||
- To-do tracking
|
||||
- Calendar management
|
||||
- More intelligent features
|
||||
- Multi-platform clients
|
||||
|
||||
## Usage Guide
|
||||
|
||||
#### Method 1: Search
|
||||
1. Search for "RuZhi AI Notes" in search engines
|
||||
2. Register
|
||||
|
||||
#### Method 2: Direct Link Access
|
||||
1. Visit our official link https://ruzhiai.perfcloud.cn/
|
||||
2. Complete the registration process
|
||||
- The system will automatically create an application for you after registration
|
||||
- You can then start using all features
|
49
docs/ruzhiai_note/README_cn.md
Normal file
|
@ -0,0 +1,49 @@
|
|||
<div align="center">
|
||||
<img src="./assets/play_store_512.png" width="64" height="auto" />
|
||||
</div>
|
||||
|
||||
# 如知AI笔记
|
||||
|
||||
如知AI笔记是一款智能化的AI知识管理工具,致力于为用户提供一站式的知识管理和应用服务,包括AI搜索探索、AI结果转笔记、笔记管理与整理、 知识演示与分享等。
|
||||
|
||||
## 核心优势
|
||||
|
||||
### 1. 强大的AI模型支持
|
||||
- 集成了DeepSeek深度思考模型
|
||||
- 用户反馈显示,相较同类产品,我们的模型:
|
||||
- 更加稳定
|
||||
- 输出质量更高
|
||||
- 可以融合企业内部知识库
|
||||
|
||||
<img src="./assets/deepseek_used.jpg" width="100%" height="auto" />
|
||||
|
||||
|
||||
### 2. 便捷的内容管理
|
||||
- 一键保存AI对话内容到笔记
|
||||
- 多样化的导出格式支持:
|
||||
- Markdown
|
||||
- Word文档
|
||||
- PDF文件
|
||||
- PPT演示文稿
|
||||
- 简历模板
|
||||
等多种格式
|
||||
|
||||
### 3. 即将推出的功能
|
||||
- 任务管理清单
|
||||
- 待办事项追踪
|
||||
- 日历管理
|
||||
- 更多智能化功能
|
||||
- 多端客户端
|
||||
|
||||
## 使用指南
|
||||
|
||||
|
||||
#### 方式一:搜索
|
||||
1. 在搜索引擎中搜索"如知AI笔记"
|
||||
2. 注册
|
||||
|
||||
#### 方式二:直接访问链接
|
||||
1. 访问我们的官方链接 https://ruzhiai.perfcloud.cn/
|
||||
2. 完成注册流程
|
||||
- 注册后系统会自动为您创建应用
|
||||
- 即可开始使用所有功能
|
BIN
docs/ruzhiai_note/assets/deepseek_used.jpg
Normal file
After Width: | Height: | Size: 356 KiB |
BIN
docs/ruzhiai_note/assets/play_store_512.png
Normal file
After Width: | Height: | Size: 70 KiB |
|
@ -12,7 +12,19 @@ ToMemo is a phrasebook + clipboard history + keyboard iOS app with integrated AI
|
|||
|
||||
## Integrate with Deepseek API
|
||||
|
||||
Go to Settings-Extensions-AI Services-AI Providers to add the Deepseek API Key.
|
||||
After adding, you can turn on the 「show in bottom tab」 in the AI service page, so that you can talk to Deepseek directly in the application.
|
||||
- Go to "Settings-Extensions-AI Services-AI Providers", click "Add" in the top right corner, and select "DeepSeek" in the **Provider** field.
|
||||
- Enter your API Key in the **API Key** field.
|
||||
- Click the "Test" button to verify if the input is valid.
|
||||
- Click "Load Models" to select the model you want to use
|
||||
- Turn on "Enable" and click "Save"
|
||||
|
||||

|
||||

|
||||
|
||||
## Use
|
||||
|
||||
- Go to "Settings-Extensions-AI Services"
|
||||
- Click "AI Assistant" to enter the AI Assistant page
|
||||
- Add an AI Assistant in the top right corner, you can select "Deepseek" in the models
|
||||
- Start chatting with Deepseek
|
||||
|
||||

|
||||
|
|
|
@ -12,7 +12,19 @@ ToMemo 是一款短语合集 + 剪切板历史 + 键盘输出的 iOS 应用,
|
|||
|
||||
## Integrate with Deepseek API
|
||||
|
||||
进入设置-扩展-AI 服务-AI 供应商,即可添加 Deepseek API Key。
|
||||
添加完成后,可以 AI 服务页面中开启底部 Tab 页,方便应用中直接与 Deepseek 对话。
|
||||
- 进入「设置-扩展-AI 服务-AI 供应商」,点击右上角「添加」,在**供应商**中选择「DeepSeek」。
|
||||
- 在**API Key**中输入你的 API Key。
|
||||
- 点击「测试」按钮,测试填入是否可用。
|
||||
- 点击「加载模型」,选择需要使用的模型
|
||||
- 打开「启用」后,点击「保存」
|
||||
|
||||

|
||||

|
||||
|
||||
## Use
|
||||
|
||||
- 进入「设置-扩展-AI 服务」,
|
||||
- 点击「AI 助手」进入 AI 助手页面,
|
||||
- 右上角添加 AI 助手,可以在模型中选择「深度求索」
|
||||
- 开始和 Deepseek 聊天
|
||||
|
||||

|
||||
|
|
BIN
docs/tomemo/assets/app-provider.png
Normal file
After Width: | Height: | Size: 416 KiB |
BIN
docs/tomemo/assets/use-deepseek.png
Normal file
After Width: | Height: | Size: 260 KiB |